Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO664-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3d1aa7e9
由
LN
编写于
2023-09-20 13:13:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加hy22
1 个父辈
8ff99d2c
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
219 行增加
和
23 行删除
source/AssemblyLineClient/记录.txt
source/DeviceLibrary/LineConfig/Config_Line.csv
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
source/DeviceLibrary/model/StoreStep.cs
source/LoadCVSLibrary/storeConfig/config/IO_Type.cs
source/AssemblyLineClient/记录.txt
查看文件 @
3d1aa7e
20230908
修改:增加HY22
Config_Line.csv 增加配置:
DI,211,HY22横移托盘检测,HY22_TrayCheck,559,HC,X559
20230825
HY03顶升和前阻挡下降慢问题。
...
...
source/DeviceLibrary/LineConfig/Config_Line.csv
查看文件 @
3d1aa7e
...
...
@@ -566,7 +566,7 @@ DI,103,T3上料横移气缸放料端,SL_MoveCylinder_Give,266,HC,X266
DI,103,T3上料气缸放松端,SL_ClampCylinder_Relax,267,HC,X267
DI,103,T3上料气缸料盘检测,SL_ClampCylinder_Check,268,HC,X268
DI,103,T3出口检测,SL_OutLine_Check,269,HC,X269
,,,
,270,HC,X270
DI,211,HY22前阻挡托盘检测,HY22_FTrayCheck
,270,HC,X270
,,,,271,HC,X271
,,,,,,
DO,103,T3运行指示灯,SL_HddLed,208,HC,Y208
...
...
@@ -591,7 +591,7 @@ DO,103,T3上料气缸放松,SL_ClampCylinder_Relax,226,HC,Y226
DO,103,T3上料气缸夹紧,SL_ClampCylinder_Work,227,HC,Y227
DO,103,T3托盘定位气缸前进,SL_TrayLocation_Before,228,HC,Y228
DO,103,T3托盘定位气缸后退,SL_TrayLocation_After,229,HC,Y229
,,,
,230,HC,Y230
DO,211,HY22前阻挡,HY22_FStopDown
,230,HC,Y230
,,,,231,HC,Y231
,,,,232,HC,Y232
,,,,233,HC,Y233
...
...
@@ -1131,7 +1131,7 @@ DI,0,T3-C1前阻挡托盘检测,HY_FrontStopCheck,555,HC,X555
DI,0,T3-C1阻挡托盘检测,HY_TrayCheck,556,HC,X556
DI,0,T3-C1顶升上升端,HY_TopCylinder_Up,557,HC,X557
DI,0,T3-C1顶升下降端,HY_TopCylinder_Down,558,HC,X558
,,,
,559,HC,X559
DI,211,HY22横移托盘检测,HY22_TrayCheck
,559,HC,X559
,,,,,,
DO,18,D9-1阻挡1下降,StopDown1,448,HC,Y448
DO,18,D9-1阻挡2下降,StopDown2,449,HC,Y449
...
...
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
查看文件 @
3d1aa7e
...
...
@@ -44,7 +44,7 @@ namespace OnlineStore.DeviceLibrary
StopMove
();
runStatus
=
LineRunStatus
.
Reset
;
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
StartReset
();
StartReset
();
return
true
;
}
...
...
@@ -66,6 +66,10 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_StopDown
,
IO_VALUE
.
LOW
);
}
if
(
IsHY11
())
{
IOMove
(
IO_Type
.
HY22_FStopDown
,
IO_VALUE
.
LOW
);
}
LineStop
();
CylinderMove
(
null
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
...
...
@@ -119,7 +123,7 @@ namespace OnlineStore.DeviceLibrary
{
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_StopDown
,
IO_VALUE
.
LOW
);
}
}
//CylinderMove(null, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
//HY_StopCylinderDown(null);
//LocationCylinderDown(null);
...
...
@@ -174,7 +178,8 @@ namespace OnlineStore.DeviceLibrary
{
FixtureProcess
();
}
}
}
HY22Process
();
}
}
...
...
@@ -183,6 +188,7 @@ namespace OnlineStore.DeviceLibrary
private
Stopwatch
frontTrayCheckWait
=
new
Stopwatch
();
private
Stopwatch
trayCheckLowWait
=
new
Stopwatch
();
//上一个托盘离开的时间
private
Stopwatch
olcheckWatch
=
new
Stopwatch
();
private
Stopwatch
hy22CheckWait
=
new
Stopwatch
();
private
object
lockObj
=
""
;
private
bool
preTrayIsC1Line
=
false
;
...
...
@@ -244,6 +250,7 @@ namespace OnlineStore.DeviceLibrary
bool
check2IsOk
=
CheckStopWatch
(
trayCheckLowWait
,
TrayWaitTime
,
false
)||
String
.
IsNullOrEmpty
(
RFIDIP
);
bool
isHY11
=
DeviceID
.
Equals
(
211
);
//HY11优先处理C5出来的托盘
isHY11
=
false
;
if
((
preTrayIsC1Line
||
isHY11
)
&&
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
StopDownCount
=
0
;
...
...
@@ -278,6 +285,115 @@ namespace OnlineStore.DeviceLibrary
//{
// LogUtil.error(Name + " CheckFixture " + "失败,未得到锁");
//}
}
private
bool
IsHY11
()
{
if
(
DeviceID
.
Equals
(
211
))
{
return
true
;
}
return
false
;
}
private
void
HY22Process
()
{
if
(!
IsHY11
())
{
return
;
}
try
{
if
(
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
if
(
MoveInfo
.
MoveStep
>=
LineMoveStep
.
HY71_OL_Wait
&&
MoveInfo
.
MoveStep
<=
LineMoveStep
.
HY79_OL_HYEnd
)
{
hy22CheckWait
.
Stop
();
return
;
}
if
(!
HY22StopDownCanMove
())
{
hy22CheckWait
.
Stop
();
return
;
}
if
(
IOValue
(
IO_Type
.
HY22_FTrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
HY22_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
{
//如果已经持续500ms,可以下降阻挡
if
(
CheckStopWatch
(
hy22CheckWait
,
TrayWaitTime
,
true
))
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY02_FrontStopDown
);
LogUtil
.
info
(
Name
+
" HY22_FTrayCheck 检测到托盘,开始下降阻挡 HY22_FStopDown,等待检测到 HY22_TrayCheck=HIGH"
);
IOMove
(
IO_Type
.
HY22_FStopDown
,
IO_VALUE
.
HIGH
,
TrayManager
.
StopDTime
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_TrayCheck
,
IO_VALUE
.
HIGH
));
}
}
else
{
hy22CheckWait
.
Stop
();
}
}
else
{
SMoveProcess
();
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
" HY22Process "
+
" 出错:"
+
ex
.
ToString
());
}
}
private
void
SMoveProcess
()
{
if
(
SecondMoveInfo
.
IsInWait
)
{
CheckWait
(
SecondMoveInfo
);
}
if
(
SecondMoveInfo
.
IsInWait
)
{
return
;
}
switch
(
SecondMoveInfo
.
MoveStep
)
{
case
LineMoveStep
.
HY02_FrontStopDown
:
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY05_TrayCheck
);
LogUtil
.
info
(
Name
+
" 已检测到 HY22_TrayCheck=HIGH ,等待 HY22_TrayCheck =LOW"
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_TrayCheck
,
IO_VALUE
.
LOW
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
10000
));
SecondMoveInfo
.
OneWaitCanEndStep
=
true
;
break
;
case
LineMoveStep
.
HY05_TrayCheck
:
SecondMoveInfo
.
EndMove
();
break
;
}
}
private
bool
HY22StopDownCanMove
()
{
if
(!
IsHY11
())
{
return
false
;
}
if
(
IOValue
(
IO_Type
.
HY22_FStopDown
).
Equals
(
IO_VALUE
.
HIGH
))
{
hy22CheckWait
.
Stop
();
return
false
;
}
if
(!
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
return
false
;
}
return
true
;
}
private
void
TrayStart_HY02_FrontStopDown
()
{
...
...
@@ -417,6 +533,10 @@ namespace OnlineStore.DeviceLibrary
ClearTrayRFID
();
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_OL_Tray_Check
,
IO_VALUE
.
HIGH
));
if
(
IsHY11
())
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_FStopDown
,
IO_VALUE
.
LOW
));
}
}
}
catch
(
Exception
ex
)
...
...
@@ -459,7 +579,7 @@ namespace OnlineStore.DeviceLibrary
{
if
(
StopDownCount
==
0
)
{
LogInfo
(
Second
MoveInfo
.
SLog
+
msg
+
",暂不结束,重新下降一次前阻挡"
);
LogInfo
(
MoveInfo
.
SLog
+
msg
+
",暂不结束,重新下降一次前阻挡"
);
//阻挡重新下降一次
StopDownCount
++;
...
...
@@ -500,14 +620,14 @@ namespace OnlineStore.DeviceLibrary
#
region
托盘检测处理
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY02_FrontStopDown
))
{
{
//如果此步骤持续还不到一秒,是信号闪烁,暂不处理
//if (MoveInfo.StepSpan().TotalSeconds < 1)
//{
// return;
//}
if
(
IOValue
(
IO_Type
.
HY_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOValue
(
IO_Type
.
HY_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
HY03_FrontStopUp
();
}
...
...
@@ -876,14 +996,38 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
if
(
IsHY11
())
{
IOMove
(
IO_Type
.
HY22_FStopDown
,
IO_VALUE
.
LOW
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY72_OL_AllStopUp
))
{
if
(
DeviceID
.
Equals
(
211
)
&&
IOValue
(
IO_Type
.
HY22_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY72_OL_WaitHY22
);
LogUtil
.
info
(
Name
+
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 等待托盘到达信号 HY22_TrayCheck=LOW"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_TrayCheck
,
IO_VALUE
.
LOW
));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.HY22_FTrayCheck, IO_VALUE.LOW));
}
else
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY73_OL_TopUp
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 开始横移,顶升上升,出料线阻挡气缸下降,横移阻挡气缸上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
HY_TopCylinder_Down
,
IO_Type
.
HY_TopCylinder_Up
);
OL_StopCylinderDown
(
MoveInfo
);
HY_StopCylinderUp
(
MoveInfo
);
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY72_OL_WaitHY22
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY73_OL_TopUp
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 开始横移,顶升上升,出料线阻挡气缸下降,横移阻挡气缸上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
HY_TopCylinder_Down
,
IO_Type
.
HY_TopCylinder_Up
);
OL_StopCylinderDown
(
MoveInfo
);
HY_StopCylinderUp
(
MoveInfo
);
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY73_OL_TopUp
))
{
...
...
@@ -901,31 +1045,49 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY75_OL_StopDown
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY76_OL_WaitTray
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 等待托盘到达信号"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_OL_Tray_Check
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
if
(
DeviceID
.
Equals
(
211
)
&&
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY22_TrayCheck
))
{
LogUtil
.
info
(
Name
+
" "
+
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 等待托盘到达信号 HY22_TrayCheck"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_TrayCheck
,
IO_VALUE
.
HIGH
));
}
else
{
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 等待托盘到达信号"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY76_OL_WaitTray
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY77_OL_WaitTime
);
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 再次等待500ms,等待托盘到达信号 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
if
(
DeviceID
.
Equals
(
211
)
&&
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY22_TrayCheck
))
{
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 再次等待 1000 ms,等待托盘到达信号 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY22_TrayCheck
,
IO_VALUE
.
HIGH
));
}
else
{
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 再次等待500ms,等待托盘到达信号 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_TrayCheck
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
MoveInfo
.
IsStep
(
LineMoveStep
.
HY77_OL_WaitTime
))
{
UpdateTrayNum
();
bool
isNeedHY
=
TrayNeedHY
(
currTrayNum
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY78_OL_TopDown
);
LineStop
(
MoveInfo
);
if
(
isNeedHY
)
{
{
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 电机停止,顶升不需要下降 ,出料线阻挡上升,出料线阻挡气缸上升,横移阻挡气缸上升"
);
}
else
{
{
CheckLog
(
"托盘阻挡"
+
MoveInfo
.
SLog
+
" 电机停止,顶升下降 ,出料线阻挡上升,出料线阻挡气缸上升,横移阻挡气缸上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
HY_TopCylinder_Up
,
IO_Type
.
HY_TopCylinder_Down
);
}
...
...
@@ -1145,10 +1307,10 @@ namespace OnlineStore.DeviceLibrary
{
//如果是出料口来的空托盘直接横移
if
(
currIsOutLineTray
)
{
return
true
;
}
//
if (currIsOutLineTray)
//
{
//
return true;
//
}
//如果进仓15,进仓16有料,空料盘直接横移
MoveEquip
move14
=
LineManager
.
Line
.
MoveEquipMap
[
14
];
...
...
@@ -1243,7 +1405,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
//如果横移20和横移21都有托盘
,
需要横移
//如果横移20和横移21都有托盘
,且都在顶升状态,空托盘
需要横移
if
(
IOManager
.
IOValue
(
IO_Type
.
HY_TrayCheck
,
220
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOManager
.
IOValue
(
IO_Type
.
HY_TopCylinder_Up
,
220
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOManager
.
IOValue
(
IO_Type
.
HY_TrayCheck
,
221
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOManager
.
IOValue
(
IO_Type
.
HY_TopCylinder_Up
,
221
).
Equals
(
IO_VALUE
.
HIGH
))
{
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
3d1aa7e
...
...
@@ -1314,6 +1314,8 @@ namespace OnlineStore.DeviceLibrary
[
Description
(
"出料线->C1线_检测到出料线托盘,所有阻挡上升"
)]
HY72_OL_AllStopUp
,
[
Description
(
"出料线->C1线_等待HY22无料盘"
)]
HY72_OL_WaitHY22
,
/// <summary>
/// 出料线->C1线:开始横移,顶升上升
/// </summary>
...
...
source/LoadCVSLibrary/storeConfig/config/IO_Type.cs
查看文件 @
3d1aa7e
...
...
@@ -455,8 +455,26 @@ namespace OnlineStore.LoadCSVLibrary
/// DI,105,T5固定气缸2下降端,SL_FixedCylinder_Down2,94,HC,X94
/// </summary>
public
static
string
SL_FixedCylinder_Down2
=
"SL_FixedCylinder_Down2"
;
/// <summary>
/// DI,211,HY22横移托盘检测,HY22_TrayCheck,559,HC,X559
/// </summary>
public
static
string
HY22_TrayCheck
=
"HY22_TrayCheck"
;
/// <summary>
/// DI,211,HY22前阻挡托盘检测,HY22_FTrayCheck,270,HC,X270
/// </summary>
public
static
string
HY22_FTrayCheck
=
"HY22_FTrayCheck"
;
/// <summary>
/// DO,211, HY22前阻挡, HY22_StopDown,230, HC, Y230, 0=上升挡停,1=下降
/// </summary>
public
static
string
HY22_FStopDown
=
"HY22_FStopDown"
;
}
public
enum
IO_VALUE
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论