Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-ACPackingStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9aac7466
由
张东亮
编写于
2023-06-20 05:55:45 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
紧急料和工单混合、出库压紧轴张开问题
1 个父辈
7af92bf5
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
218 行增加
和
8 行删除
source/ACPackingStore/FrmBox.Designer.cs
source/ACPackingStore/FrmBox.cs
source/Common/util/AcSerialBean.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_OutStore.cs
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
source/LoadCVSLibrary/storeConfig/config/AC_Box_Config.cs
source/ACPackingStore/FrmBox.Designer.cs
查看文件 @
9aac746
此文件的差异太大,无法显示。
source/ACPackingStore/FrmBox.cs
查看文件 @
9aac746
...
...
@@ -18,6 +18,7 @@ using System.IO.Ports;
using
OnlineStore.LoadCSVLibrary
;
using
CodeLibrary
;
using
System.Security.Cryptography
;
using
HalconDotNet
;
namespace
OnlineStore.ACPackingStore
{
...
...
@@ -39,6 +40,7 @@ namespace OnlineStore.ACPackingStore
{
btnCMove
.
Tag
=
0
;
cmbPlateH
.
Items
.
Clear
();
cmbPosPlateH
.
Items
.
Clear
();
//for (int i = 8; i <= 48; i = i + 4)
//{
// cmbPlateH.Items.Add(i.ToString());
...
...
@@ -47,6 +49,12 @@ namespace OnlineStore.ACPackingStore
{
cmbPlateH
.
Items
.
Add
(
item
);
}
foreach
(
var
item
in
BoxBean
.
Config
.
GetComP3AllHeights
())
{
cmbPosPlateH
.
Items
.
Add
(
item
);
}
if
(
cmbPosPlateH
.
Items
.
Count
>
0
)
cmbPosPlateH
.
SelectedIndex
=
0
;
if
(
cmbPlateH
.
Items
.
Count
>
0
)
cmbPlateH
.
SelectedIndex
=
0
;
LoadStore
();
...
...
@@ -1110,5 +1118,88 @@ namespace OnlineStore.ACPackingStore
{
BoxBean
.
IsScanCodeWithLockedShelf
=
chbLockedShelf
.
Checked
;
}
private
void
cmbPosPlateH_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
cmbPosPlateH
.
SelectedIndex
>=
0
)
{
int
height
=
Convert
.
ToInt32
(
cmbPosPlateH
.
Text
);
ComP2Info
p2Info
=
BoxBean
.
Config
.
GetComP3
(
height
);
if
(
p2Info
==
(
null
))
{
txtPosComP3
.
Text
=
0.
ToString
();
btnCMoveP3
.
Text
=
height
+
"mm库位压紧前点P3:"
+
0
;
btnCMoveP3
.
Tag
=
0
;
}
else
{
txtPosComP3
.
Text
=
p2Info
.
MaxComP
.
ToString
();
btnCMoveP3
.
Text
=
height
+
"mm库位压紧前点P3:"
+
p2Info
.
TargetComP2
();
btnCMoveP3
.
Tag
=
p2Info
.
TargetComP2
();
}
}
}
private
void
btnSaveComP3_Click
(
object
sender
,
EventArgs
e
)
{
if
(
cmbPosPlateH
.
SelectedIndex
>=
0
)
{
int
height
=
Convert
.
ToInt32
(
cmbPosPlateH
.
Text
);
int
minValue
=
FormUtil
.
GetIntValue
(
txtPosComP3
);
int
maxValue
=
FormUtil
.
GetIntValue
(
txtPosComP3
);
ComP2Info
p2Info
=
new
ComP2Info
(
height
,
minValue
,
maxValue
);
if
(
minValue
>
BoxBean
.
Config
.
CompAxis_P1_Position
&&
maxValue
>
BoxBean
.
Config
.
CompAxis_P1_Position
)
{
}
else
{
MessageBox
.
Show
(
"保存失败:"
+
" 盘高【"
+
height
+
"】范围【"
+
minValue
+
"~"
+
maxValue
+
"】无效,压紧前点需大于待机点【"
+
BoxBean
.
Config
.
CompAxis_P1_Position
+
"】"
);
return
;
}
BoxBean
.
Config
.
UpdateComP3
(
height
,
p2Info
);
if
(
StoreManager
.
UpdateBoxConfig
(
BoxBean
.
Config
))
{
LogUtil
.
info
(
BoxBean
.
Name
+
"更新库位压紧前点ComP3【 "
+
BoxBean
.
Config
.
CompAxis_P3_List
+
"】"
);
}
else
{
MessageBox
.
Show
(
"保存失败"
);
}
}
}
private
void
btnCMoveP3_Click
(
object
sender
,
EventArgs
e
)
{
int
value
=
Convert
.
ToInt32
(
btnCMoveP3
.
Tag
);
if
(
value
>
0
)
{
AxisABSMove
(
BoxBean
.
Config
.
Comp_Axis
,
value
,
BoxBean
.
Config
.
CompAxis_P3_Speed
);
}
}
private
void
txtPosComP3_TextChanged
(
object
sender
,
EventArgs
e
)
{
if
(
cmbPosPlateH
.
SelectedIndex
>=
0
)
{
int
height
=
Convert
.
ToInt32
(
cmbPosPlateH
.
Text
);
ComP2Info
p2Info
=
BoxBean
.
Config
.
GetComP3
(
height
);
if
(
p2Info
==
(
null
))
{
txtPosComP3
.
Text
=
0.
ToString
();
btnCMoveP3
.
Text
=
height
+
"mm库位压紧前点P3:"
+
0
;
btnCMoveP3
.
Tag
=
0
;
}
else
{
txtPosComP3
.
Text
=
p2Info
.
MaxComP
.
ToString
();
btnCMoveP3
.
Text
=
height
+
"mm库位压紧前点P3:"
+
p2Info
.
TargetComP2
();
btnCMoveP3
.
Tag
=
p2Info
.
TargetComP2
();
}
}
}
}
}
source/Common/util/AcSerialBean.cs
查看文件 @
9aac746
...
...
@@ -211,7 +211,7 @@ namespace OnlineStore.Common
if
(
_serialPort
.
IsOpen
)
{
//lock (lockObj)
if
(
Monitor
.
TryEnter
(
lockObj
,
1
00
))
if
(
Monitor
.
TryEnter
(
lockObj
,
8
00
))
{
//Monitor.Enter(lockObj);
try
...
...
source/DeviceLibrary/PackingStore/AC_BOX_Bean_OutStore.cs
查看文件 @
9aac746
using
Asa
;
using
CodeLibrary
;
using
log4net.Core
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
...
...
@@ -63,6 +64,8 @@ namespace OnlineStore.DeviceLibrary
private
void
SO_03_ToBagPosition
()
{
ACBoxPosition
position
=
CSVPositionReader
<
ACBoxPosition
>.
GetPositon
(
MoveInfo
.
MoveParam
.
PosID
);
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P3
=
Config
.
GetComP3
(
position
.
BagHigh
).
MaxComP
;
LineMoveP
movep
=
MoveInfo
.
MoveParam
.
MoveP
;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_ToPosition
);
InOutStoreLog
(
"走到库位,压紧轴至P3["
+
movep
.
ComPress_P3
+
"] ,旋转轴至P2["
+
movep
.
Middle_P2
+
"],升降轴至P5["
+
movep
.
UpDown_P5
+
"] ,顶升上升"
);
...
...
@@ -240,9 +243,10 @@ namespace OnlineStore.DeviceLibrary
int
targetP
=
currPosition
+
Config
.
CompAxis_Down_Position
;
LastHeight
=
Config
.
GetComP2PlateH
(
targetP
);
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P2
=
targetP
;
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P3
=
targetP
+
Config
.
CompAxis_P3_P2_Value
;
ACBoxPosition
position
=
CSVPositionReader
<
ACBoxPosition
>.
GetPositon
(
MoveInfo
.
MoveParam
.
PosID
);
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P3
=
Config
.
GetComP3
(
position
.
BagHigh
).
MaxComP
;
InOutStoreLog
(
"料架取料,检测到Compress_Check,盘高【"
+
LastHeight
+
"】,向下压紧 ["
+
Config
.
CompAxis_Down_Position
+
"] 目标 ["
+
targetP
+
"]记录ComP2["
+
targetP
+
"]
ComP3["
+
MoveInfo
.
MoveParam
.
MoveP
.
ComPress_P3
+
"]
"
);
"]记录ComP2["
+
targetP
+
"]"
);
ACAxisMove
(
Config
.
Comp_Axis
,
targetP
,
Config
.
CompAxis_P1_Speed
);
...
...
@@ -706,8 +710,17 @@ namespace OnlineStore.DeviceLibrary
}
if
(
string
.
IsNullOrEmpty
(
StoreManager
.
FindRealRfidByTempRfid
(
xuniId
)))
{
LogRunStepInfo
(
$
"当前虚拟rfid={xuniId}未出库,可以使用{curShelfId}出库"
);
return
true
;
StoreManager
.
findTempRfid
(
"IsRightShelfId"
,
curShelfId
,
out
string
tmpRfid
);
if
(
string
.
IsNullOrEmpty
(
tmpRfid
)
)
{
LogRunStepInfo
(
$
"当前虚拟rfid={xuniId}未出库,可以使用{curShelfId}出库"
);
return
true
;
}
else
{
LogRunStepInfo
(
$
"当前虚拟rfid={xuniId}未出库,{curShelfId}与{tmpRfid}绑定,无法出库"
);
return
false
;
}
}
return
false
;
}
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
查看文件 @
9aac746
...
...
@@ -65,6 +65,7 @@ PRO,压紧轴(轴4)非七寸盘压紧前点相对压紧点的位置,CompAxis_P3_P2_Value,-90000,,,
PRO,压紧轴(轴4)七寸盘压紧前点相对压紧点的位置,CompAxis7_P3_P2_Value,-50000,,,,,,,
PRO,压紧轴(轴4)压紧确认信号收到之后下降的位置,CompAxis_Down_Position,77500,,,,,,,
PRO,压紧轴(轴4)P2压紧点范围对应值(8=1000;2000#),CompAxis_P2_List,8=385001;424000#12=383001;385000#16=379001;383000#24=360001;368000#32=315001;330000#48=200000;231560#20=368001;379000#28=330001;360000#36=298001;315000#40=256101;298000#44=231561;256100#,,,,,,,
PRO,压紧轴(轴4)P3库位压紧前点对应值,CompAxis_P3_List,8=385001#12=383001#16=379001#24=360001#32=315001,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,1000,,,,,,,
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
查看文件 @
9aac746
...
...
@@ -64,6 +64,7 @@ PRO,压紧轴(轴4)非七寸盘压紧前点相对压紧点的位置,CompAxis_P3_P2_Value,-100000,,
PRO,压紧轴(轴4)七寸盘压紧前点相对压紧点的位置,CompAxis7_P3_P2_Value,-50000,,,,,,,
PRO,压紧轴(轴4)压紧确认信号收到之后下降的位置,CompAxis_Down_Position,81000,,,,,,,
PRO,压紧轴(轴4)P2压紧点范围对应值(8=1000;2000#),CompAxis_P2_List,8=419201;421200#12=384501;419200#16=379501;384500#24=358001;366000#32=308001;318000#48=200000;234000#44=234001;274000#40=274001;287500#36=287501;308000#28=318001;358000#20=366001;379500#,,,,,,,
PRO,压紧轴(轴4)P3库位压紧前点对应值,CompAxis_P3_List,8=385001#12=383001#16=379001#24=360001#32=315001,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,1000,,,,,,,
...
...
source/LoadCVSLibrary/storeConfig/config/AC_Box_Config.cs
查看文件 @
9aac746
using
System
;
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
...
...
@@ -549,7 +550,11 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
[
ConfigProAttribute
(
"CompAxis_P2_List"
)]
public
string
CompAxis_P2_List
{
get
;
set
;
}
/// <summary>
/// PRO,压紧轴(轴4)P3库位压紧前点对应值,CompAxis_P3_List,8=385001#12=383001#16=379001#24=360001#32=315001,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"CompAxis_P3_List"
)]
public
string
CompAxis_P3_List
{
get
;
set
;
}
/// <summary>
/// PRO,压紧轴(轴4)P3最大压紧前点,CompAxis_Max_P3,10000,,,,,,,
...
...
@@ -563,6 +568,7 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"All_CIDs"
)]
public
string
All_CIDs
{
get
;
set
;
}
private
List
<
ComP2Info
>
ComP2List
=
null
;
private
List
<
ComP2Info
>
ComP3List
=
null
;
public
ComP2Info
GetComP2
(
int
plateh
)
{
//查找指定的高度
...
...
@@ -583,6 +589,27 @@ namespace OnlineStore.LoadCSVLibrary
}
return
new
ComP2Info
(
plateh
,
CompAxis_P4_Position
,
CompAxis_P4_Position
+
CompAxis_Down_Position
);
}
public
ComP2Info
GetComP3
(
int
plateh
)
{
//查找指定的高度
analysisComP3
();
List
<
ComP2Info
>
list
=
(
from
m
in
ComP3List
where
m
.
PlateH
.
Equals
(
plateh
)
select
m
).
ToList
<
ComP2Info
>();
if
(
list
.
Count
>
0
)
{
return
list
[
0
];
}
//查找类似的高度
list
=
(
from
com
in
ComP3List
orderby
com
.
PlateH
descending
select
com
).
ToList
<
ComP2Info
>();
foreach
(
ComP2Info
comp2
in
list
)
{
if
(
plateh
>=
comp2
.
PlateH
)
{
return
comp2
;
}
}
LogUtil
.
LOGGER
.
Warn
(
$
"未查询到指定高度={plateh}的脉冲,使用P3最大压紧前点"
);
return
new
ComP2Info
(
plateh
,
CompAxis_Max_P3
,
CompAxis_Max_P3
);
}
public
List
<
int
>
GetComP2AllHeights
()
{
analysisComP2
();
...
...
@@ -593,6 +620,16 @@ namespace OnlineStore.LoadCSVLibrary
}
return
list
;
}
public
List
<
int
>
GetComP3AllHeights
()
{
analysisComP3
();
List
<
int
>
list
=
new
List
<
int
>();
foreach
(
var
item
in
ComP3List
)
{
list
.
Add
(
item
.
PlateH
);
}
return
list
;
}
public
int
GetComP2PlateH
(
int
currP
)
{
analysisComP2
();
...
...
@@ -647,10 +684,39 @@ namespace OnlineStore.LoadCSVLibrary
}
CompAxis_P2_List
=
tt
;
}
public
void
UpdateComP3
(
int
height
,
ComP2Info
p2Info
)
{
analysisComP3
();
bool
isUpdate
=
false
;
foreach
(
ComP2Info
p
in
ComP3List
)
{
if
(
p
.
PlateH
.
Equals
(
height
))
{
p
.
MinComP
=
p2Info
.
MinComP
;
p
.
MaxComP
=
p2Info
.
MaxComP
;
isUpdate
=
true
;
}
}
if
(!
isUpdate
)
{
ComP3List
.
Add
(
p2Info
);
}
string
tt
=
""
;
foreach
(
ComP2Info
p
in
ComP3List
)
{
tt
+=
ComP3InfoToStr
(
p
);
}
CompAxis_P3_List
=
tt
;
}
private
string
ComP2InfoToStr
(
ComP2Info
p2
)
{
return
p2
.
PlateH
+
"="
+
p2
.
MinComP
+
";"
+
p2
.
MaxComP
+
"#"
;
}
private
string
ComP3InfoToStr
(
ComP2Info
p2
)
{
return
p2
.
PlateH
+
"="
+
p2
.
MinComP
+
"#"
;
}
private
void
analysisComP2
()
{
if
(
ComP2List
==
null
)
...
...
@@ -693,7 +759,45 @@ namespace OnlineStore.LoadCSVLibrary
}
}
}
private
void
analysisComP3
()
{
if
(
ComP3List
==
null
)
{
try
{
// 8 = 1000#12=2001#16=3001#20=4001#22=5001#24=6001
ComP3List
=
new
List
<
ComP2Info
>();
string
[]
arrayList
=
CompAxis_P3_List
.
Split
(
'#'
);
foreach
(
string
str
in
arrayList
)
{
if
(
str
.
Equals
(
""
))
{
continue
;
}
string
[]
com2A
=
str
.
Split
(
'='
);
if
(
com2A
.
Length
.
Equals
(
2
))
{
int
plateH
=
Convert
.
ToInt32
(
com2A
[
0
]);
int
maxP
=
Convert
.
ToInt32
(
com2A
[
1
]);
int
minP
=
Convert
.
ToInt32
(
com2A
[
1
]);
if
(
minP
>
CompAxis_P1_Position
&&
maxP
>
CompAxis_P1_Position
)
{
ComP3List
.
Add
(
new
ComP2Info
(
plateH
,
minP
,
maxP
));
LOGGER
.
Info
(
$
"添加库位P3前点参数{plateH}={maxP}"
);
}
else
{
LOGGER
.
Error
(
DeviceID
+
"压紧轴库位P3 盘高【"
+
plateH
+
"】范围【"
+
minP
+
"~"
+
maxP
+
"】无效,位置小于待机点P1【"
+
CompAxis_P1_Position
+
"】"
);
}
}
}
}
catch
(
Exception
ex
)
{
LOGGER
.
Error
(
"解析CompAxis_P3_List【"
+
CompAxis_P2_List
+
"】出错:"
+
ex
.
ToString
());
}
}
}
public
List
<
string
>
GetCameraList
()
{
if
(
CameraList
==
null
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论