Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
NS200
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
图表
网络
创建新的问题
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit da49fff1
由
张东亮
编写于
2025-12-10 10:59:16 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
使用料盘列表来记录对应料盘厚度,避免错乱
1 个父辈
a859c3a1
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
103 行增加
和
23 行删除
DeviceLibrary/AutoScanAndLabel/Common.cs
DeviceLibrary/AutoScanAndLabel/LabelParam.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _Common_.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _LeftProcess.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _MiddleProcess.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _RightProcess.cs
DeviceLibrary/AutoScanAndLabel/Common.cs
查看文件 @
da49fff
此文件的差异被折叠,
点击展开。
DeviceLibrary/AutoScanAndLabel/LabelParam.cs
查看文件 @
da49fff
...
...
@@ -23,13 +23,15 @@ namespace DeviceLibrary
/// <param name="ngMsg">NG消息</param>
public
LabelParam
(
string
wareNo
=
""
,
int
platew
=
0
,
int
plateh
=
0
,
bool
_IsNg
=
false
,
string
ngMsg
=
""
)
{
UID
=
Common
.
id
.
nextId
();
WareCode
=
wareNo
;
PlateW
=
platew
;
PlateH
=
plateh
;
IsNg
=
_IsNg
;
NgMsg
=
ngMsg
;
}
public
long
UID
{
get
;
set
;
}
public
long
PreUID
{
get
;
set
;
}
/// <summary>
/// 物品二维码信息
/// </summary>
...
...
@@ -43,7 +45,8 @@ namespace DeviceLibrary
/// 料盘高度
/// </summary>
public
int
PlateH
{
get
;
set
;
}
public
int
PlwHight
{
get
;
set
;
}
public
int
RightPulseHeight
{
get
;
set
;
}
public
int
RightPlateHeight
{
get
;
set
;
}
/// <summary>
/// 料盘宽度
/// </summary>
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _Common_.cs
查看文件 @
da49fff
...
...
@@ -12,6 +12,52 @@ namespace DeviceLibrary
{
partial
class
MainMachine
{
List
<
LabelParam
>
runParams
=
new
List
<
LabelParam
>();
object
paramLock
=
new
object
();
void
addParam
(
LabelParam
param
)
{
lock
(
paramLock
)
{
runParams
.
Add
(
param
);
LogUtil
.
info
(
$
"参数新建【{JsonHelper.SerializeObject(param)}】"
);
}
}
void
removeParam
(
long
uid
)
{
lock
(
paramLock
)
{
var
param
=
runParams
.
FirstOrDefault
(
p
=>
p
.
UID
==
uid
);
if
(
param
!=
null
)
{
runParams
.
Remove
(
param
);
LogUtil
.
info
(
$
"参数删除【{JsonHelper.SerializeObject(param)}】"
);
}
}
}
LabelParam
GetLabelParam
(
long
uid
)
{
lock
(
paramLock
)
{
var
param
=
runParams
.
FirstOrDefault
(
p
=>
p
.
UID
==
uid
);
return
param
;
}
}
//void setParamPlwHight(long uid,int PlwHight,int plateH)
//{
// lock (paramLock)
// {
// var param = runParams.FirstOrDefault(p => p.UID == uid);
// if (param != null)
// {
// param.RightPulseHeight = PlwHight;
// param.RightPlateHeight = plateH;
// LogUtil.info($"参数修改:PlwHight={PlwHight},plateH={plateH}【{JsonHelper.SerializeObject(param)}】");
// }
// }
//}
public
void
StopMove
(
bool
ServoOff
=
false
)
{
runStatus
=
RunStatus
.
Stop
;
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _LeftProcess.cs
查看文件 @
da49fff
...
...
@@ -67,7 +67,7 @@ namespace DeviceLibrary
if
(
enableCheck
)
{
var
aixH
=
1f
*
Math
.
Abs
(
_leftBatchAxisPositionWhileTrayCheck
-
curPos
)
/
Config
.
Left_Batch_ChangeValue
;
float
plateH
=
Math
.
Max
(
LeftMoveInfo
.
MoveParam
.
PlwHight
/
Config
.
Right_Batch_ChangeValue
,
LeftMoveInfo
.
MoveParam
.
PlateH
)
;
float
plateH
=
LeftMoveInfo
.
MoveParam
.
RightPlateHeight
;
var
canErrorMM
=
ConfigHelper
.
Config
.
Get
(
"左侧料盘放料串检查厚度最大偏差值"
,
5
);
if
(
Math
.
Abs
(
aixH
-
plateH
)
<=
canErrorMM
)
{
...
...
@@ -113,15 +113,16 @@ namespace DeviceLibrary
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L04
);
int
targetP1
=
Left_Batch_Axis
.
GetAclPosition
()
-
ConfigHelper
.
Config
.
Get
(
"LeftAxisDownValue"
,
50
)
*
Config
.
Left_Batch_ChangeValue
;
int
currpoint
=
Left_Batch_Axis
.
GetAclPosition
();
if
(
PlwHight
>
5000
)
var
param
=
GetLabelParam
(
LeftMoveInfo
.
MoveParam
.
UID
);
if
(
param
!=
null
&&
param
.
RightPlateHeight
>
0
)
{
int
countPleHight
=
PlwHight
/
Config
.
Right_Batch_ChangeValue
*
Config
.
Left_Batch_ChangeValue
;
int
countPleHight
=
param
.
RightPlateHeight
*
Config
.
Left_Batch_ChangeValue
;
var
target
=
currpoint
-
countPleHight
+
5000
;
if
(
target
<
targetP1
)
{
targetP1
=
target
;
LeftMoveInfo
.
MoveParam
.
PlateH
=
countPleHight
/
Config
.
Left_Batch_ChangeValue
;
LeftMoveInfo
.
log
(
$
"出料提升机构,获取到料盘高度脉冲{
PlwH
ight},当前位置{currpoint},计算盘高{LeftMoveInfo.MoveParam.PlateH}"
);
LeftMoveInfo
.
log
(
$
"出料提升机构,获取到料盘高度脉冲{
param.RightPlateHe
ight},当前位置{currpoint},计算盘高{LeftMoveInfo.MoveParam.PlateH}"
);
}
}
int
targetSpeed
=
Config
.
Left_Batch_P1_speed
;
...
...
@@ -194,15 +195,30 @@ namespace DeviceLibrary
if
(
enableCheck
)
{
//等待右侧测高完成
if
((
RightMoveInfo
.
MoveStep
>
MoveStep
.
R04
&&
RightMoveInfo
.
MoveStep
<=
MoveStep
.
R10_WaitReelLeave
)
||
RightMoveInfo
.
MoveStep
==
MoveStep
.
Wait
)
//测高完成
var
param1
=
GetLabelParam
(
RightMoveInfo
.
MoveParam
.
UID
);
if
(
param1
==
null
)
{
LeftMoveInfo
.
MoveParam
.
PlwHight
=
PlwHight
;
LeftMoveInfo
.
log
(
$
"右侧测高完成:PlwHight={PlwHight}"
);
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L16
);
LeftMoveInfo
.
log
(
$
"未查询到记录:{RightMoveInfo.MoveParam.UID},不检查"
);
return
;
}
else
else
//找到记录
{
return
;
if
(
param1
.
RightPlateHeight
==
0
)
//测高未完成
{
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L13
);
LeftMoveInfo
.
log
(
$
"查询到记录:{RightMoveInfo.MoveParam.UID},但还未获取到高度,等待"
);
LeftMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
return
;
}
else
{
LeftMoveInfo
.
MoveParam
.
RightPlateHeight
=
param1
.
RightPlateHeight
;
LeftMoveInfo
.
MoveParam
.
RightPulseHeight
=
param1
.
RightPulseHeight
;
LeftMoveInfo
.
log
(
$
"查询到记录:{RightMoveInfo.MoveParam.UID},RightPlateHeight={LeftMoveInfo.MoveParam.RightPlateHeight},RightPulseHeight={LeftMoveInfo.MoveParam.RightPulseHeight}"
);
}
}
}
var
curPos
=
Left_Batch_Axis
.
GetAclPosition
();
//判断当前料盘是否放到料串上
...
...
@@ -235,11 +251,7 @@ namespace DeviceLibrary
LeftMoveInfo
.
log
(
$
"批量轴重新上升到P2位置,LeftStartMovePosition={LeftStartMovePosition}"
);
break
;
case
MoveStep
.
L16
:
if
(
RightMoveInfo
.
MoveStep
==
MoveStep
.
Wait
||
RightShelfNoTray
)
{
PlwHight
=
0
;
LeftMoveInfo
.
log
(
$
"右侧无料盘,PlwHight={PlwHight}"
);
}
removeParam
(
LeftMoveInfo
.
MoveParam
.
UID
);
LeftBatchAxisPositionWhileTrayCheck
=
Left_Batch_Axis
.
GetAclPosition
();
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L20_WaitLabel
);
break
;
...
...
@@ -257,7 +269,7 @@ namespace DeviceLibrary
}
else
{
if
(
PlwH
ight
>
0
)
if
(
LeftMoveInfo
.
MoveParam
.
RightPulseHe
ight
>
0
)
{
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L03
);
LeftBatchAxisToP2
(
Config
.
Left_Batch_P1
,
Config
.
Left_Batch_P1_speed
,
IO_VALUE
.
LOW
);
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _MiddleProcess.cs
查看文件 @
da49fff
...
...
@@ -26,15 +26,15 @@ namespace DeviceLibrary
//如果右侧可取料那么那么移动轴到p2点,夹爪释放。获取右侧的标签信息,右侧标签信息复位,否则等待
if
(
RightMoveInfo
.
MoveStep
==
MoveStep
.
R10_WaitReelLeave
)
{
//
PlwHight = 0;
PlwHight
=
0
;
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M02
);
Take_Middle_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_Middle_P2
,
Config
.
Take_Middle_P2_speed
);
Take_UpDown_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_UpDown_P2
,
Config
.
Take_UpDown_P2_speed
);
clampTool
.
Release
();
//复制右侧料盘信息
MiddleMoveInfo
.
MoveParam
=
RightMoveInfo
.
MoveParam
.
clone
();
RightMoveInfo
.
MoveParam
=
new
LabelParam
();
addParam
(
MiddleMoveInfo
.
MoveParam
);
RightMoveInfo
.
MoveParam
=
new
LabelParam
()
{
PreUID
=
MiddleMoveInfo
.
MoveParam
.
UID
}
;
MiddleMoveInfo
.
log
(
$
"右侧可以取料,旋转轴/上下轴转到P2点:{JsonConvert.SerializeObject(MiddleMoveInfo.MoveParam)}"
);
//MiddleMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RightArm_Check, IO_VALUE.HIGH));
}
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _RightProcess.cs
查看文件 @
da49fff
...
...
@@ -47,7 +47,26 @@ namespace DeviceLibrary
PlwHight
=
Uplast
-
LastBatchAxisPosition
;
if
(
PlwHight
<=
0
)
PlwHight
=
5000
;
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置到位,当前位置:{Uplast}, PlwHight:{PlwHight}"
);
if
(
RightCount
==
0
)
//第一次上升,不是测高的
{
RightMoveInfo
.
log
(
$
"RightCount={RightCount},新料串到位"
);
}
else
{
var
param
=
GetLabelParam
(
RightMoveInfo
.
MoveParam
.
PreUID
);
if
(
param
!=
null
)
{
param
.
RightPulseHeight
=
PlwHight
;
param
.
RightPlateHeight
=
PlwHight
/
Config
.
Right_Batch_ChangeValue
;
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置到位,当前位置:{Uplast},uid={param.UID}, PlwHight:{param.RightPulseHeight},plateH:{param.RightPlateHeight}"
);
}
else
{
RightMoveInfo
.
log
(
$
"未找到UID:{RightMoveInfo.MoveParam.PreUID},无法设置高度"
);
}
}
break
;
//如果定位上升并且特定中间步骤偶,开始扫码
case
MoveStep
.
R04
:
...
...
@@ -132,7 +151,7 @@ namespace DeviceLibrary
{
RightMoveInfo
.
NextMoveStep
(
MoveStep
.
R20_reel_duplicate
);
RightMoveInfo
.
MoveParam
.
IsNg
=
true
;
RightMoveInfo
.
MoveParam
.
NgMsg
=
crc
.
GetString
(
"Res0183.b7688c25"
,
"条码重复"
);
RightMoveInfo
.
MoveParam
.
NgMsg
=
crc
.
GetString
(
"Res0183.b7688c25"
,
"条码重复"
);
//duplicate = true;
RightMoveInfo
.
log
(
$
"条码重复:{result.overlapPercentage} > 50"
);
}
...
...
@@ -179,7 +198,7 @@ namespace DeviceLibrary
}
break
;
case
MoveStep
.
R20_reel_duplicate
:
Msg
.
add
(
crc
.
GetString
(
"Res0184.4aa86524"
,
"条码出现重复,请分别取走左右料串顶层的料盘,然后按右侧按钮继续"
),
MsgLevel
.
alarm
);
Msg
.
add
(
crc
.
GetString
(
"Res0184.4aa86524"
,
"条码出现重复,请分别取走左右料串顶层的料盘,然后按右侧按钮继续"
),
MsgLevel
.
alarm
);
if
(
IOValue
(
IO_Type
.
GratingSignal_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
if
(
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论