Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
SO1057-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 8e40f615
由
张东亮
编写于
2023-11-28 13:06:49 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
紧急出库到紧急箱子
1 个父辈
cb317e8b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
289 行增加
和
49 行删除
source/DeviceLibrary/Config/Config_InputEquip.csv
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/manager/model/InOutParam.cs
source/DeviceLibrary/storeBean/XLRStoreBean.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
source/LoadCVSLibrary/storeConfig/config/InputEquip_Config.cs
source/XLRStoreClient/FrmXLRStore.Designer.cs
source/XLRStoreClient/inputForm/FrmBatchMove.Designer.cs
source/XLRStoreClient/inputForm/FrmBatchMove.cs
source/XLRStoreClient/inputForm/uc/Input_AxisControl.Designer.cs
source/XLRStoreClient/inputForm/uc/Input_AxisControl.cs
source/DeviceLibrary/Config/Config_InputEquip.csv
查看文件 @
8e40f61
...
...
@@ -48,6 +48,8 @@ PRO,0,取料升降轴_A上暂存区13寸放料低点,Updown_P14_AUpperL13,65798,
PRO,0,取料升降轴_A下暂存区13寸取料低点,Updown_P15_AUnderL13,368000,,,,,,,,,,,,
PRO,0,取料升降轴_B上暂存区13寸放料低点,Updown_P16_BUpperL13,65798,,,,,,,,,,,,
PRO,0,取料升降轴_B下暂存区13寸取料低点,Updown_P17_BUnderL13,370000,,,,,,,,,,,,
PRO,0,取料升降轴_紧急料区放料高点,Updown_P18_NGH,310000,,,,,,,,,,,,
PRO,0,取料升降轴_紧急料区放料低点,Updown_P19_NGL,310000,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,取料升降轴_P1速度,Updown_P1_Speed,45000,,,,,,,,,,,,
PRO,1,取料升降轴_P2速度,Updown_P2_Speed,45000,,,,,,,,,,,,
...
...
@@ -66,6 +68,8 @@ PRO,13,取料升降轴_P14速度,Updown_P14_Speed,45000,,,,,,,,,,,,
PRO,14,取料升降轴_P15速度,Updown_P15_Speed,45000,,,,,,,,,,,,
PRO,15,取料升降轴_P16速度,Updown_P16_Speed,45000,,,,,,,,,,,,
PRO,16,取料升降轴_P17速度,Updown_P17_Speed,45000,,,,,,,,,,,,
PRO,17,取料升降轴_P18速度,Updown_P18_Speed,45000,,,,,,,,,,,,
PRO,18,取料升降轴_P19速度,Updown_P19_Speed,45000,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,取料旋转轴_待机点,Middle_P1,126912,,,,,,,,,,,,
PRO,0,取料旋转轴_A料口取料点,Middle_P2_ATake,161600,,,,,,,,,,,,
...
...
@@ -75,6 +79,7 @@ PRO,0,取料旋转轴_B上暂存区放料点,Middle_P5_BUpper,107,,,,,,,,,,,,
PRO,0,取料旋转轴_NG料区放料点,Middle_P6_NG,214355,,,,,,,,,,,,
PRO,0,取料旋转轴_A下暂存区取料点,Middle_P7_AUnder,250330,,,,,,,,,,,,
PRO,0,取料旋转轴_B下暂存区取料点,Middle_P8_BUnder,107,,,,,,,,,,,,
PRO,0,取料旋转轴_紧急料区放料点,Middle_P9_NG,214355,,,,,,,,,,,,
PRO,0,取料旋转轴_P1速度,Middle_P1_Speed,100000,,,,,,,,,,,,
PRO,1,取料旋转轴_P2速度,Middle_P2_Speed,100000,,,,,,,,,,,,
PRO,2,取料旋转轴_P3速度,Middle_P3_Speed,100000,,,,,,,,,,,,
...
...
@@ -83,6 +88,7 @@ PRO,4,取料旋转轴_P5速度,Middle_P5_Speed,100000,,,,,,,,,,,,
PRO,5,取料旋转轴_P6速度,Middle_P6_Speed,100000,,,,,,,,,,,,
PRO,6,取料旋转轴_P7速度,Middle_P7_Speed,100000,,,,,,,,,,,,
PRO,7,取料旋转轴_P8速度,Middle_P8_Speed,100000,,,,,,,,,,,,
PRO,8,取料旋转轴_P9速度,Middle_P9_Speed,100000,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,取料旋转轴_反向间隙补偿值,MiddleAxis_Reverse_Offset,300,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
...
...
@@ -92,9 +98,11 @@ PRO,0,取料进出轴_B缓存区点,Inout_P3,126912,,,,,,,,,,,,
PRO,0,取料进出轴_A上料区点,Inout_P4,126912,,,,,,,,,,,,
PRO,0,取料进出轴_B上料区点,Inout_P5,126912,,,,,,,,,,,,
PRO,0,取料进出轴_NG区点,Inout_P6,126912,,,,,,,,,,,,
PRO,0,取料进出轴_紧急料区点,Inout_P7,126912,,,,,,,,,,,,
PRO,0,取料进出轴_P1速度,Inout_P1_Speed,100000,,,,,,,,,,,,
PRO,1,取料进出轴_P2速度,Inout_P2_Speed,100000,,,,,,,,,,,,
PRO,2,取料进出轴_P3速度,Inout_P3_Speed,100000,,,,,,,,,,,,
PRO,3,取料进出轴_P4速度,Inout_P4_Speed,100000,,,,,,,,,,,,
PRO,4,取料进出轴_P5速度,Inout_P5_Speed,100000,,,,,,,,,,,,
PRO,5,取料进出轴_P6速度,Inout_P6_Speed,100000,,,,,,,,,,,,
\ No newline at end of file
PRO,5,取料进出轴_P6速度,Inout_P6_Speed,100000,,,,,,,,,,,,
PRO,6,取料进出轴_P7速度,Inout_P7_Speed,100000,,,,,,,,,,,,
\ No newline at end of file
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
查看文件 @
8e40f61
...
...
@@ -165,8 +165,8 @@ namespace OnlineStore.DeviceLibrary
}
}
});
//最多等待
60
秒
bool
taskResult
=
eyemtask
.
Wait
(
60
000
);
//最多等待
15
秒
bool
taskResult
=
eyemtask
.
Wait
(
15
000
);
if
(!
taskResult
)
{
LogUtil
.
error
(
deviceName
+
" 【"
+
cameraName
+
"】eyem扫码超时"
);
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
8e40f61
...
...
@@ -1140,6 +1140,37 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
出库
->
紧急箱
/// <summary>
/// 出库->紧急箱:取料旋转轴SVD13 运动到P6(NG料区放料点)
/// </summary>
I035_MiddleToUrgentBox
,
/// <summary>
/// 出库->紧急箱:取料进出轴SVD12 运动到P6(NG料区放料点)
/// </summary>
I036_InoutToP7
,
/// <summary>
/// 出库->紧急箱:取料升降轴SVD12 运动到P9(NG料区放料低点)
/// </summary>
I037_UpdownToP19
,
/// <summary>
/// 出库->紧急箱:电卡爪放松
/// </summary>
I038_ClampRelax
,
/// <summary>
/// 出库->紧急箱:取料升降轴SVD12 运动到P8(NG料区放料高点)
/// </summary>
I039_UpdownToP18
,
/// <summary>
/// 出库->紧急箱:取料进出轴SVD 运动到P1(待机点)
/// </summary>
I040_1_InoutToP1
,
/// <summary>
/// 出库->紧急箱:取料旋转轴SVD13 运动到P1(待机点)
/// </summary>
I041_MiddleToP1
,
#
endregion
#
endregion
#
region
料串批量轴复位
1500
开始
...
...
source/DeviceLibrary/manager/model/InOutParam.cs
查看文件 @
8e40f61
...
...
@@ -133,7 +133,7 @@ namespace OnlineStore.DeviceLibrary
public
bool
singleOut
=
false
;
public
string
ToStr
()
{
return
" ["
+
barcode
+
"] ["
+
PosId
+
"] ["
+
PlateW
+
"x"
+
PlateH
+
"],urgentReel ["
+
urgentReel
return
" ["
+
barcode
+
"] ["
+
PosId
+
"] ["
+
PlateW
+
"x"
+
PlateH
+
"]
"
+
$
",hSerial[{hSerial}]"
+
"
,urgentReel ["
+
urgentReel
+
"],cutReel ["
+
cutReel
+
"],smallReel ["
+
smallReel
+
"],rfid ["
+
rfid
+
"],rfidLoc ["
+
rfidLoc
+
"],singleOut["
+
singleOut
+
"]"
;
}
...
...
source/DeviceLibrary/storeBean/XLRStoreBean.cs
查看文件 @
8e40f61
...
...
@@ -60,8 +60,13 @@ namespace OnlineStore.DeviceLibrary
HCBoardManager
.
InitConfig
();
IOManager
.
Init
();
AxisManager
.
Init
();
AxisManager
.
instance
.
OpenCard
();
bool
rtn
=
AxisManager
.
instance
.
OpenCard
();
//if (!rtn)
//{
// rtn = AxisManager.instance.CloseCard();
// if (rtn)
// AxisManager.instance.OpenCard();
//}
//初始化摄像机配置
CodeManager
.
LoadConfig
();
...
...
@@ -73,7 +78,7 @@ namespace OnlineStore.DeviceLibrary
canStart
=
true
;
AgvClient
.
Init
();
}
#
endregion
public
string
CanStart
()
...
...
@@ -148,7 +153,7 @@ namespace OnlineStore.DeviceLibrary
public
override
bool
Reset
()
{
{
bool
isNeedAllReset
=
false
;
if
(
isInSuddenDown
||
isNoAirpressure_Check
)
{
...
...
@@ -158,7 +163,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
((
runStatus
==
RunStatus
.
HomeMoving
||
runStatus
==
RunStatus
.
Reset
)
&&
NoAlarm
())
{
LogUtil
.
error
(
Name
+
"收到复位信号,已经在复位或原点返回中,且当前无报警,不处理复位"
);
LogUtil
.
error
(
Name
+
"收到复位信号,已经在复位或原点返回中,且当前无报警,不处理复位"
);
return
false
;
}
...
...
@@ -169,7 +174,7 @@ namespace OnlineStore.DeviceLibrary
//重置通用处理
mainTimer
.
Interval
=
1000
;
// maxSeconds = 10;
// maxSeconds = 10;
alarmType
=
AlarmType
.
None
;
mainTimer
.
Enabled
=
false
;
isInSuddenDown
=
false
;
...
...
@@ -234,7 +239,7 @@ namespace OnlineStore.DeviceLibrary
isOk
=
false
;
break
;
}
}
}
...
...
@@ -254,7 +259,7 @@ namespace OnlineStore.DeviceLibrary
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
}
}
#
endregion
private
bool
busyPro
=
false
;
...
...
@@ -297,7 +302,7 @@ namespace OnlineStore.DeviceLibrary
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"LineTimerPro 出错:"
,
ex
);
}
}
busyPro
=
false
;
}
catch
(
Exception
ex
)
...
...
@@ -306,7 +311,7 @@ namespace OnlineStore.DeviceLibrary
}
Thread
.
Sleep
(
1
);
}
#
region
停止运动
...
...
@@ -408,7 +413,7 @@ namespace OnlineStore.DeviceLibrary
ConfigIO
io
=
baseConfig
.
getWaitIO
(
wait
.
IoType
);
WarnMsg
=
Name
+
"["
+
checkWaitInfo
.
MoveStep
+
"]等待"
+
NotOkMsg
+
" 超时"
;
Alarm
(
AlarmType
.
IoSingleTimeOut
);
LogUtil
.
error
(
WarnMsg
,
checkWaitInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
checkWaitInfo
.
ErrorLogType
);
}
//超过报警时长
else
if
(
rwSpan
.
TotalSeconds
>
5
&&
span
.
TotalSeconds
>
6
&&
span
.
TotalSeconds
<
StoreManager
.
Config
.
IOSingle_TimerOut
*
2
)
...
...
@@ -481,8 +486,8 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
忙碌处理
public
override
bool
StartInstore
(
InOutParam
param
)
{
return
true
;
...
...
@@ -533,6 +538,6 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
\ No newline at end of file
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
查看文件 @
8e40f61
...
...
@@ -456,6 +456,8 @@ namespace OnlineStore.DeviceLibrary
if
(!
rtn
)
{
InOutParam
inOut
=
new
InOutParam
(
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
());
inOut
.
PosInfo
.
IsNG
=
true
;
inOut
.
PosInfo
.
NgMsg
=
"验证入库完成失败"
;
LogInfo
(
$
"入库 {MoveInfo.SLog}:验证入库完成失败,将该库位出库[{inOut.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfo.GetPosSide()}面]"
);
// if (CheckASide())
{
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
查看文件 @
8e40f61
using
Asa
;
using
HalconDotNet
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
...
...
@@ -577,7 +578,7 @@ namespace OnlineStore.DeviceLibrary
{
LastHeight
=
(
int
)
height
;
}
else
if
(
height
>=
27
)
else
if
(
height
>=
27
)
{
LastHeight
=
28
;
buchongStr
=
">=27,<=小于32"
;
...
...
@@ -655,7 +656,13 @@ namespace OnlineStore.DeviceLibrary
}
else
{
if
(
SServerManager
.
GetOutTaskCount
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
)
==
0
)
if
(
string
.
IsNullOrEmpty
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
))
{
doorInfo
.
status
=
doorStatusE
.
outStore
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
IS11_ShelfReady
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
}
else
if
(
SServerManager
.
GetOutTaskCount
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
)
==
0
)
{
SendOutShelfLeave
(
"检测到工单已结束:"
+
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
);
}
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
8e40f61
...
...
@@ -473,10 +473,15 @@ namespace OnlineStore.DeviceLibrary
IOTimeOutProcess
();
//判断流水线打开了才可以运行
List
<
BatchMoveBean
>
BatchMoveList
=
new
List
<
BatchMoveBean
>()
{
BatchMove_A
,
BatchMove_B
};
foreach
(
BatchMoveBean
moveBean
in
BatchMoveList
)
{
//LogUtil.debug($"{moveBean.Name} 处理");
moveBean
.
TimerProcess
();
}
if
(!
MoveStop
)
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)
&&
NoErrorAlarm
())
//
if (MoveInfo.MoveType.Equals(MoveType.None) && NoErrorAlarm())
{
if
(
CheckStartOutPos
(
"A下暂存区"
,
BufferDataManager
.
AOutStoreInfo
,
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
,
BatchMoveList
))
{
...
...
@@ -502,7 +507,7 @@ namespace OnlineStore.DeviceLibrary
CheckStartOutPos
(
"B下暂存区"
,
BufferDataManager
.
BOutStoreInfo
,
IO_Type
.
FeedingB_Outstore_UnderArea_ReelCheck
,
BatchMoveList
,
true
);
}
}
LogUtil
.
debug
(
$
"入料机构出库检查"
);
}
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)
&&
NoErrorAlarm
())
...
...
@@ -520,10 +525,6 @@ namespace OnlineStore.DeviceLibrary
}
}
foreach
(
BatchMoveBean
moveBean
in
BatchMoveList
)
{
moveBean
.
TimerProcess
();
}
if
(
NoErrorAlarm
())
{
CheckAxisAlarm
();
...
...
@@ -534,12 +535,22 @@ namespace OnlineStore.DeviceLibrary
DoorInfo
doorinfo
=
null
;
if
(
posInfo
!=
null
&&
ioval
.
Equals
(
IO_VALUE
.
HIGH
))
{
if
(!
posInfo
.
IsNG
&&
string
.
IsNullOrEmpty
(
posInfo
.
hSerial
))
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
LogInfo
(
$
"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱"
);
StartOutstore
(
param
);
return
true
;
}
foreach
(
BatchMoveBean
moveBean
in
BatchMoveList
)
{
var
curhSerial
=
moveBean
.
MoveInfo
.
MoveParam
?.
PosInfo
?.
hSerial
;
if
(
moveBean
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
moveBean
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
continue
;
LogUtil
.
debug
(
$
"{moveBean.Name} CheckStartOutPos 处理"
);
var
curhSerial
=
moveBean
.
MoveInfo
.
MoveParam
?.
PosInfo
?.
hSerial
??
""
;
if
(!
string
.
IsNullOrEmpty
(
curhSerial
)
&&
curhSerial
!=
posInfo
.
hSerial
)
{
LogInfo
(
$
"{posType}当前料串的 hSerial:{curhSerial},与准备出库
到料串
hSerial:{posInfo.hSerial} 不符"
);
LogInfo
(
$
"{posType}当前料串的 hSerial:{curhSerial},与准备出库
的
hSerial:{posInfo.hSerial} 不符"
);
moveBean
.
ShelfNeedLeave
=
true
;
}
else
if
(
moveBean
.
MoveInfo
.
MoveType
==
MoveType
.
InStore
&&
moveBean
.
MoveInfo
.
MoveStep
==
StepEnum
.
IS23_WaitAgv
)
...
...
@@ -556,7 +567,7 @@ namespace OnlineStore.DeviceLibrary
StartOutstore
(
param
);
return
true
;
}
else
if
(
posInfo
.
IsNG
)
else
if
(
posInfo
.
IsNG
)
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
LogInfo
(
$
"{posType}物料{param.PosInfo.ToStr()},准备出库到NG箱"
);
...
...
@@ -580,12 +591,26 @@ namespace OnlineStore.DeviceLibrary
private
bool
CheckStartOutPos
(
string
posType
,
InOutPosInfo
posInfo
,
String
ioType
,
List
<
BatchMoveBean
>
BatchMoveList
,
bool
shelfAutoLeave
=
false
)
{
LogUtil
.
debug
(
$
"CheckStartOutPos 【{posType}】,【{posInfo?.ToStr()}】,【{ioType}】"
);
DoorInfo
doorinfo
=
null
;
if
(
posInfo
!=
null
&&
IOValue
(
ioType
).
Equals
(
IO_VALUE
.
HIGH
))
{
LogUtil
.
debug
(
$
"CheckStartOutPos 处理0"
);
if
(!
posInfo
.
IsNG
&&
string
.
IsNullOrEmpty
(
posInfo
.
hSerial
))
{
InOutParam
param
=
new
InOutParam
(
posInfo
.
ToCopy
());
LogInfo
(
$
"{posType} 紧急物料{param.PosInfo.ToStr()},准备出库到紧急箱"
);
StartOutstore
(
param
);
LogUtil
.
debug
(
$
"CheckStartOutPos 处理1"
);
return
true
;
}
foreach
(
BatchMoveBean
moveBean
in
BatchMoveList
)
{
var
curhSerial
=
moveBean
.
MoveInfo
.
MoveParam
?.
PosInfo
?.
hSerial
;
LogUtil
.
debug
(
$
"{moveBean.Name} CheckStartOutPos {moveBean.MoveInfo.MoveType}"
);
if
(
moveBean
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
moveBean
.
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
continue
;
LogUtil
.
debug
(
$
"{moveBean.Name} CheckStartOutPos 处理"
);
var
curhSerial
=
moveBean
.
MoveInfo
.
MoveParam
?.
PosInfo
?.
hSerial
??
""
;
if
(!
string
.
IsNullOrEmpty
(
curhSerial
)
&&
curhSerial
!=
posInfo
.
hSerial
)
{
LogInfo
(
$
"{posType}当前料串的 hSerial:{curhSerial},与准备出库到料串 hSerial:{posInfo.hSerial} 不符"
);
...
...
@@ -617,6 +642,11 @@ namespace OnlineStore.DeviceLibrary
}
}
else
{
LogUtil
.
debug
(
$
"CheckStartOutPos 处理-1"
);
}
LogUtil
.
debug
(
$
"CheckStartOutPos 处理-2"
);
return
false
;
}
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
查看文件 @
8e40f61
...
...
@@ -10,6 +10,7 @@ using System.Text.RegularExpressions;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
static
System
.
Windows
.
Forms
.
AxHost
;
namespace
OnlineStore.DeviceLibrary
{
...
...
@@ -373,10 +374,10 @@ namespace OnlineStore.DeviceLibrary
MoveLog
(
$
" 入料->A侧 {MoveInfo.SLog}: 旋转轴 到P4{targetV}"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
targetV
,
Config
.
Middle_P1_Speed
);
}
else
if
(
MoveInfo
.
IsTimeOut
(
20
))
{
MoveTimeOut
(
MoveInfo
,
"等待"
+
BatchMove_A
.
Name
+
"扫码结束"
);
}
//else if (MoveInfo.IsTimeOut(
))
//
{
//
MoveTimeOut(MoveInfo, "等待" + BatchMove_A.Name + "扫码结束");
//
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
II47_MiddleToP1
))
{
...
...
@@ -801,6 +802,23 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
Middle_P6_NG
,
Config
.
Middle_P6_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P8_NGH
,
Config
.
Updown_P8_Speed
);
}
private
void
ToUrgentBox
()
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
I035_MiddleToUrgentBox
);
//清空暂存区
int
startp
=
MoveInfo
.
MoveParam
.
PosInfo
.
GetPosType
();
if
(
startp
.
Equals
(
1
))
{
BufferDataManager
.
AOutStoreInfo
=
null
;
}
else
{
BufferDataManager
.
BOutStoreInfo
=
null
;
}
MoveLog
(
$
"出库{MoveInfo.SLog}: 紧急料 升降轴到P18(紧急料区放料高点){Config.Updown_P18_NGH},旋转轴到P9(紧急料区放料点){Config.Middle_P9_NG}"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
Middle_P9_NG
,
Config
.
Middle_P9_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P18_NGH
,
Config
.
Updown_P18_Speed
);
}
private
DateTime
startOutTime
=
DateTime
.
Now
;
public
override
bool
StartOutstore
(
InOutParam
param
)
{
...
...
@@ -947,6 +965,16 @@ namespace OnlineStore.DeviceLibrary
//判断料盘信号是否消失
if
(
IOValue
(
IO_Type
.
FeedingA_Outstore_UnderArea_ReelCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
IsNG
)
{
ToNG
();
return
;
}
else
if
(
string
.
IsNullOrEmpty
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
))
{
ToUrgentBox
();
return
;
}
if
(!
MiddleToShelf
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IO21_WaitShelfReady
);
...
...
@@ -962,6 +990,16 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IO07_WaitReelCheckLow
))
{
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
IsNG
)
{
ToNG
();
return
;
}
else
if
(
string
.
IsNullOrEmpty
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
))
{
ToUrgentBox
();
return
;
}
if
(!
MiddleToShelf
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IO21_WaitShelfReady
);
...
...
@@ -1030,6 +1068,11 @@ namespace OnlineStore.DeviceLibrary
ToNG
();
return
;
}
else
if
(
string
.
IsNullOrEmpty
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
))
{
ToUrgentBox
();
return
;
}
if
(!
MiddleToShelf
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IO21_WaitShelfReady
);
...
...
@@ -1050,6 +1093,11 @@ namespace OnlineStore.DeviceLibrary
ToNG
();
return
;
}
else
if
(
string
.
IsNullOrEmpty
(
MoveInfo
.
MoveParam
.
PosInfo
.
hSerial
))
{
ToUrgentBox
();
return
;
}
if
(!
MiddleToShelf
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IO21_WaitShelfReady
);
...
...
@@ -1202,6 +1250,65 @@ namespace OnlineStore.DeviceLibrary
runStatus
=
RunStatus
.
Runing
;
}
#
endregion
#
region
出库
->
紧急箱
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I035_MiddleToUrgentBox
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
I036_InoutToP7
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 进出轴到P7(紧急料区放料点){Config.Inout_P7}"
);
InOutAxis
.
AbsMove
(
MoveInfo
,
Config
.
Inout_P7
,
Config
.
Inout_P7_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I036_InoutToP7
))
{
TrayHasLeave
();
MoveInfo
.
NextMoveStep
(
StepEnum
.
I037_UpdownToP19
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 升降轴到P19(紧急料区放料低点){Config.Updown_P19_NGL}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P19_NGL
,
Config
.
Updown_P19_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I037_UpdownToP19
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
I038_ClampRelax
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 夹爪放松"
);
ClampRelax
(
MoveInfo
,
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I038_ClampRelax
))
{
if
(!
StoreManager
.
XLRStore
.
boxEquip
.
SendStoreState
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
,
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
,
DeviceStatus
.
OutStoreEnd
))
return
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
I039_UpdownToP18
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 升降轴到P18(紧急料区放料高点){Config.Updown_P18_NGH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P18_NGH
,
Config
.
Updown_P18_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I039_UpdownToP18
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
I040_1_InoutToP1
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 进出轴到P1(待机点){Config.Inout_P1}"
);
InOutAxis
.
AbsMove
(
MoveInfo
,
Config
.
Inout_P1
,
Config
.
Inout_P1_Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I040_1_InoutToP1
))
{
if
(
shelf
.
Equals
(
1
))
{
MoveLog
(
$
" 出料->紧急箱放料结束"
);
MoveInfo
.
EndMove
();
runStatus
=
RunStatus
.
Runing
;
}
else
{
//旋转轴暂不回待机点
MoveInfo
.
NextMoveStep
(
StepEnum
.
I041_MiddleToP1
);
MoveLog
(
$
" 出料->紧急箱 {MoveInfo.SLog}: 旋转轴 到P1(待机点){Config.Middle_P1}"
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
Middle_P1
,
Config
.
Middle_P1_Speed
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
I041_MiddleToP1
))
{
TimeSpan
span
=
DateTime
.
Now
-
startInTime
;
MoveLog
(
$
" 出料->紧急箱放料结束,耗时【{FormUtil.GetSpanStr(span)}】"
);
MoveInfo
.
EndMove
();
runStatus
=
RunStatus
.
Runing
;
}
#
endregion
}
private
bool
MiddleToShelf
()
{
...
...
source/LoadCVSLibrary/storeConfig/config/InputEquip_Config.cs
查看文件 @
8e40f61
...
...
@@ -221,6 +221,16 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"Updown_P17_BUnderL13"
)]
public
int
Updown_P17_BUnderL13
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料升降轴_紧急料区放料高点,Updown_P18_NGH,310000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P18_NGH"
)]
public
int
Updown_P18_NGH
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料升降轴_紧急料区放料低点,Updown_P19_NGL,310000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P19_NGL"
)]
public
int
Updown_P19_NGL
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料升降轴_P1速度,Updown_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P1_Speed"
)]
...
...
@@ -306,6 +316,16 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"Updown_P17_Speed"
)]
public
int
Updown_P17_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,17,取料升降轴_P18速度,Updown_P18_Speed,45000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P18_Speed"
)]
public
int
Updown_P18_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,18,取料升降轴_P19速度,Updown_P19_Speed,45000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P19_Speed"
)]
public
int
Updown_P19_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料升降轴_待机点,Middle_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Middle_P1"
)]
...
...
@@ -346,6 +366,12 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"Middle_P8_BUnder"
)]
public
int
Middle_P8_BUnder
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料旋转轴_紧急料区放料点,Middle_P9_NG,214355,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Middle_P9_NG"
)]
public
int
Middle_P9_NG
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料旋转轴_P1速度,Middle_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Middle_P1_Speed"
)]
...
...
@@ -385,7 +411,11 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
[
ConfigProAttribute
(
"Middle_P8_Speed"
)]
public
int
Middle_P8_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,8,取料旋转轴_P9速度,Middle_P9_Speed,100000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Middle_P9_Speed"
)]
public
int
Middle_P9_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料旋转轴_反向间隙补偿值,MiddleAxis_Reverse_Offset,300,,,,,,,,,,,,
/// </summary>
...
...
@@ -439,6 +469,12 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"Inout_P6"
,
false
)]
public
int
Inout_P6
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料进出轴_紧急料区点,Inout_P7,126912,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Inout_P7"
,
false
)]
public
int
Inout_P7
{
get
;
set
;
}
/// <summary>
/// PRO,0,取料进出轴_P1速度,Inout_P1_Speed,100000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Inout_P1_Speed"
,
false
)]
...
...
@@ -469,6 +505,12 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"Inout_P6_Speed"
,
false
)]
public
int
Inout_P6_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,6,取料进出轴_P7速度,Inout_P7_Speed,100000,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Inout_P7_Speed"
,
false
)]
public
int
Inout_P7_Speed
{
get
;
set
;
}
private
List
<
string
>
CameraList
=
null
;
...
...
source/XLRStoreClient/FrmXLRStore.Designer.cs
查看文件 @
8e40f61
此文件的差异被折叠,
点击展开。
source/XLRStoreClient/inputForm/FrmBatchMove.Designer.cs
查看文件 @
8e40f61
...
...
@@ -82,7 +82,7 @@
this
.
panel2
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
panel2
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
panel2
.
Name
=
"panel2"
;
this
.
panel2
.
Size
=
new
System
.
Drawing
.
Size
(
949
,
5
4
6
);
this
.
panel2
.
Size
=
new
System
.
Drawing
.
Size
(
949
,
5
0
6
);
this
.
panel2
.
TabIndex
=
324
;
//
// groupBox3
...
...
@@ -308,9 +308,9 @@
this
.
chbMoveStop
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chbMoveStop
.
AutoSize
=
true
;
this
.
chbMoveStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbMoveStop
.
Location
=
new
System
.
Drawing
.
Point
(
3
2
2
,
86
);
this
.
chbMoveStop
.
Location
=
new
System
.
Drawing
.
Point
(
3
0
2
,
86
);
this
.
chbMoveStop
.
Name
=
"chbMoveStop"
;
this
.
chbMoveStop
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chbMoveStop
.
Size
=
new
System
.
Drawing
.
Size
(
104
,
28
);
this
.
chbMoveStop
.
TabIndex
=
327
;
this
.
chbMoveStop
.
Text
=
"暂停运动"
;
this
.
chbMoveStop
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -349,9 +349,9 @@
this
.
chbDebug
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
chbDebug
.
AutoSize
=
true
;
this
.
chbDebug
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbDebug
.
Location
=
new
System
.
Drawing
.
Point
(
21
3
,
86
);
this
.
chbDebug
.
Location
=
new
System
.
Drawing
.
Point
(
19
3
,
86
);
this
.
chbDebug
.
Name
=
"chbDebug"
;
this
.
chbDebug
.
Size
=
new
System
.
Drawing
.
Size
(
84
,
24
);
this
.
chbDebug
.
Size
=
new
System
.
Drawing
.
Size
(
104
,
28
);
this
.
chbDebug
.
TabIndex
=
325
;
this
.
chbDebug
.
Text
=
"调试状态"
;
this
.
chbDebug
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -377,7 +377,7 @@
this
.
lblAgvInfo
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
lblAgvInfo
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
62
);
this
.
lblAgvInfo
.
Name
=
"lblAgvInfo"
;
this
.
lblAgvInfo
.
Size
=
new
System
.
Drawing
.
Size
(
61
,
17
);
this
.
lblAgvInfo
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
20
);
this
.
lblAgvInfo
.
TabIndex
=
282
;
this
.
lblAgvInfo
.
Text
=
"AGV 状态"
;
//
...
...
@@ -435,9 +435,9 @@
this
.
chbAutoOut
.
Checked
=
true
;
this
.
chbAutoOut
.
CheckState
=
System
.
Windows
.
Forms
.
CheckState
.
Checked
;
this
.
chbAutoOut
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAutoOut
.
Location
=
new
System
.
Drawing
.
Point
(
502
,
510
);
this
.
chbAutoOut
.
Location
=
new
System
.
Drawing
.
Point
(
458
,
510
);
this
.
chbAutoOut
.
Name
=
"chbAutoOut"
;
this
.
chbAutoOut
.
Size
=
new
System
.
Drawing
.
Size
(
168
,
24
);
this
.
chbAutoOut
.
Size
=
new
System
.
Drawing
.
Size
(
212
,
28
);
this
.
chbAutoOut
.
TabIndex
=
280
;
this
.
chbAutoOut
.
Text
=
"入料完成自动开始出库"
;
this
.
chbAutoOut
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -445,9 +445,9 @@
//
// FrmBatchMove
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17
F
);
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
9F
,
20
F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
949
,
5
4
6
);
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
949
,
5
0
6
);
this
.
Controls
.
Add
(
this
.
panel2
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MaximizeBox
=
false
;
...
...
source/XLRStoreClient/inputForm/FrmBatchMove.cs
查看文件 @
8e40f61
...
...
@@ -302,9 +302,8 @@ namespace OnlineStore.XLRStore
private
void
btnResetShelf_Click
(
object
sender
,
EventArgs
e
)
{
moveBean
.
UpdateShelf
();
moveBean
.
Reset
(
true
);
LogUtil
.
info
(
moveBean
.
Name
+
"点击:"
+
btnResetShelf
.
Text
);
moveBean
.
Reset
(
true
,
true
);
}
private
void
chbMoveStop_CheckedChanged
(
object
sender
,
EventArgs
e
)
...
...
source/XLRStoreClient/inputForm/uc/Input_AxisControl.Designer.cs
查看文件 @
8e40f61
此文件的差异被折叠,
点击展开。
source/XLRStoreClient/inputForm/uc/Input_AxisControl.cs
查看文件 @
8e40f61
...
...
@@ -22,7 +22,7 @@ namespace OnlineStore.XLRStore.inputForm.uc
this
.
inputEquip
=
inputEquip
;
LoadPoint
();
LoadAxis
();
PointEditEnable
(
false
);
PointEditEnable
(
false
);
IsLoad
=
true
;
}
private
InputEquip
inputEquip
;
...
...
@@ -64,6 +64,10 @@ namespace OnlineStore.XLRStore.inputForm.uc
inoutAxisP5
.
SetMoveData
(
inputEquip
.
InOutAxis
,
config
.
Inout_P5_Speed
,
config
.
Inout_P5
);
inoutAxisP6
.
SetMoveData
(
inputEquip
.
InOutAxis
,
config
.
Inout_P6_Speed
,
config
.
Inout_P6
);
updownAxisP18
.
SetMoveData
(
inputEquip
.
UpdownAxis
,
config
.
Updown_P18_Speed
,
config
.
Updown_P18_NGH
);
updownAxisP19
.
SetMoveData
(
inputEquip
.
UpdownAxis
,
config
.
Updown_P19_Speed
,
config
.
Updown_P19_NGL
);
mideleAxisP9
.
SetMoveData
(
inputEquip
.
MiddleAxis
,
config
.
Middle_P9_Speed
,
config
.
Middle_P9_NG
);
inoutAxisP7
.
SetMoveData
(
inputEquip
.
InOutAxis
,
config
.
Inout_P7_Speed
,
config
.
Inout_P7
);
}
private
void
LoadAxis
()
{
...
...
@@ -87,7 +91,7 @@ namespace OnlineStore.XLRStore.inputForm.uc
groupBox9
.
Enabled
=
enable
;
groupBox10
.
Enabled
=
enable
;
groupBox11
.
Enabled
=
enable
;
groupBox1
.
Enabled
=
enable
;
}
private
void
btnSave_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -125,6 +129,11 @@ namespace OnlineStore.XLRStore.inputForm.uc
inputEquip
.
Config
.
Inout_P4
=
inoutAxisP4
.
PointValue
;
inputEquip
.
Config
.
Inout_P5
=
inoutAxisP5
.
PointValue
;
inputEquip
.
Config
.
Inout_P6
=
inoutAxisP6
.
PointValue
;
inputEquip
.
Config
.
Updown_P18_NGH
=
updownAxisP18
.
PointValue
;
inputEquip
.
Config
.
Updown_P19_NGL
=
updownAxisP19
.
PointValue
;
inputEquip
.
Config
.
Middle_P9_NG
=
mideleAxisP9
.
PointValue
;
inputEquip
.
Config
.
Inout_P7
=
inoutAxisP7
.
PointValue
;
StoreManager
.
SaveInputEquipConfig
(
inputEquip
.
Config
);
MessageBox
.
Show
(
"保存成功"
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论