Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO664-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f3198fbf
由
LN
编写于
2020-12-16 09:11:01 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
线体bug,入料bug修改。
1 个父辈
a01d7cea
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
66 行增加
和
19 行删除
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
f3198fb
...
@@ -83,11 +83,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -83,11 +83,12 @@ namespace OnlineStore.DeviceLibrary
lastProTimer
=
DateTime
.
Now
;
lastProTimer
=
DateTime
.
Now
;
try
try
{
{
if
(
IsDebug
&&
runStatus
<=
LineRunStatus
.
Wait
)
if
(
runStatus
<=
LineRunStatus
.
Wait
&&
(!
baseConfig
.
DType
.
Equals
(
DeviceType
.
FeedingEquip
))
)
{
{
isInPro
=
false
;
isInPro
=
false
;
return
;
return
;
}
}
BaseTimerProcess
();
BaseTimerProcess
();
if
(
TimerMaxSeconds
>
3
&&
runStatus
>=
LineRunStatus
.
Runing
)
if
(
TimerMaxSeconds
>
3
&&
runStatus
>=
LineRunStatus
.
Runing
)
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
f3198fb
...
@@ -37,6 +37,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -37,6 +37,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"["
+
Name
.
Trim
()
+
"-SMove]"
);
SecondMoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"["
+
Name
.
Trim
()
+
"-SMove]"
);
RFIDIP
=
RFIDManager
.
GetRFIP
(
DeviceID
);
RFIDIP
=
RFIDManager
.
GetRFIP
(
DeviceID
);
HasOutLine
=
config
.
DOList
.
ContainsKey
(
IO_Type
.
SL_OutLine_Run
);
HasOutLine
=
config
.
DOList
.
ContainsKey
(
IO_Type
.
SL_OutLine_Run
);
addLastDI
(
IO_Type
.
SL_Reset_BTN
,
IO_VALUE
.
LOW
);
mainTimer
.
Enabled
=
true
;
}
}
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
override
bool
StartRun
(
bool
isDebug
=
false
)
...
@@ -312,6 +314,29 @@ namespace OnlineStore.DeviceLibrary
...
@@ -312,6 +314,29 @@ namespace OnlineStore.DeviceLibrary
protected
override
void
BaseTimerProcess
()
protected
override
void
BaseTimerProcess
()
{
{
if
(
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
{
//取新的Io状态
IO_VALUE
fuweiValue
=
IOValue
(
IO_Type
.
SL_Reset_BTN
);
IO_VALUE
lastFuwei
=
DILastValueMap
[
IO_Type
.
SL_Reset_BTN
];
addLastDI
(
IO_Type
.
SL_Reset_BTN
,
fuweiValue
);
//收到复位信号后启动
if
(
fuweiValue
.
Equals
(
IO_VALUE
.
HIGH
)
&&
lastFuwei
.
Equals
(
IO_VALUE
.
LOW
))
{
//没有启动时收到启动按钮
LogUtil
.
info
(
Name
+
"没有启动时收到复位按钮,开始调用启动方法!"
);
bool
isOk
=
StartRun
();
if
(!
isOk
)
{
LogUtil
.
error
(
"启动失败,等待下次启动"
);
mainTimer
.
Enabled
=
true
;
}
}
return
;
}
else
{
if
(
IOValue
(
IO_Type
.
SL_SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
if
(
IOValue
(
IO_Type
.
SL_SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
{
{
if
(!
isInSuddenDown
)
if
(!
isInSuddenDown
)
...
@@ -373,6 +398,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -373,6 +398,7 @@ namespace OnlineStore.DeviceLibrary
LedProcess
();
LedProcess
();
}
}
}
private
void
CloseLed
()
private
void
CloseLed
()
...
@@ -386,7 +412,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -386,7 +412,7 @@ namespace OnlineStore.DeviceLibrary
try
try
{
{
TimeSpan
span
=
DateTime
.
Now
-
lastProLedTime
;
TimeSpan
span
=
DateTime
.
Now
-
lastProLedTime
;
if
(
span
.
Total
Seconds
<
1
)
if
(
span
.
Total
Milliseconds
<
500
)
{
{
return
;
return
;
}
}
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
f3198fb
...
@@ -862,6 +862,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -862,6 +862,14 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
CheckHasTray
()
private
void
CheckHasTray
()
{
{
//若BOX和出料都没有在等待Io的过程中则此Io超时异常可能已经处理过
if
(
alarmType
.
Equals
(
LineAlarmType
.
IoSingleTimeOut
)
&&
MoveInfo
.
IsInWait
.
Equals
(
false
)
&&
SecondMoveInfo
.
IsInWait
.
Equals
(
false
))
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
LineAlarmType
.
None
;
SetWarnMsg
(
""
);
}
if
(
IOValue
(
IO_Type
.
SL_AxisLocationCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MoveInfo
.
ShelfNoTray
.
Equals
(
false
))
if
(
IOValue
(
IO_Type
.
SL_AxisLocationCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MoveInfo
.
ShelfNoTray
.
Equals
(
false
))
{
{
FI_18_ScanCode
();
FI_18_ScanCode
();
...
...
source/DeviceLibrary/assemblyLine/HY/HY_C1Line.cs
查看文件 @
f3198fb
...
@@ -184,6 +184,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -184,6 +184,8 @@ namespace OnlineStore.DeviceLibrary
private
Stopwatch
trayCheckWait
=
new
Stopwatch
();
//检测到托盘的时间
private
Stopwatch
trayCheckWait
=
new
Stopwatch
();
//检测到托盘的时间
private
Stopwatch
trayCheck2LowWait
=
new
Stopwatch
();
//上一个托盘离开的时间
private
Stopwatch
trayCheck2LowWait
=
new
Stopwatch
();
//上一个托盘离开的时间
private
object
lockObj
=
""
;
private
object
lockObj
=
""
;
private
bool
preTrayIsC1Line
=
false
;
private
void
CheckFixture
()
private
void
CheckFixture
()
{
{
if
(
Monitor
.
TryEnter
(
lockObj
,
100
))
if
(
Monitor
.
TryEnter
(
lockObj
,
100
))
...
@@ -206,7 +208,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -206,7 +208,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
runStatus
=
LineRunStatus
.
Busy
;
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY03_FrontStopUp
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY03_FrontStopUp
);
LogInfo
(
"
检测托盘,"
+
MoveInfo
.
SLog
+
"
,阻挡上升"
);
LogInfo
(
"
托盘检测,"
+
MoveInfo
.
SLog
+
" 检测到托盘
,阻挡上升"
);
if
(
Config
.
DOList
.
ContainsKey
(
IO_Type
.
HY_FrontStopDown
))
if
(
Config
.
DOList
.
ContainsKey
(
IO_Type
.
HY_FrontStopDown
))
{
{
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
LOW
);
...
@@ -217,18 +219,24 @@ namespace OnlineStore.DeviceLibrary
...
@@ -217,18 +219,24 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
}
}
}
}
else
if
(
preTrayIsC1Line
&&
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
//C1线和出料线交替处理
HY71_OL_Wait
();
}
else
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_FrontStopCheck
)
&&
IOValue
(
IO_Type
.
HY_FrontStopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
else
if
(
Config
.
DIList
.
ContainsKey
(
IO_Type
.
HY_FrontStopCheck
)
&&
IOValue
(
IO_Type
.
HY_FrontStopCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
{
{
preTrayIsC1Line
=
true
;
//托盘在前阻挡处
//托盘在前阻挡处
trayCheckWait
.
Stop
();
trayCheckWait
.
Stop
();
trayCheck2LowWait
.
Stop
();
trayCheck2LowWait
.
Stop
();
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
runStatus
=
LineRunStatus
.
Busy
;
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY02_FrontStopDown
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY02_FrontStopDown
);
LogInfo
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到前阻挡托盘
,前阻挡下降,清理托盘RFID,顶升气缸
下降"
);
LogInfo
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到前阻挡托盘
,前阻挡
下降"
);
ClearTrayRFID
();
ClearTrayRFID
();
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
HIGH
,
1200
);
IOMove
(
IO_Type
.
HY_FrontStopDown
,
IO_VALUE
.
HIGH
,
1200
);
MoveInfo
.
OneWaitCanEndStep
=
true
;
MoveInfo
.
OneWaitCanEndStep
=
true
;
...
@@ -240,20 +248,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -240,20 +248,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
else
if
(
Config
.
IsOutLineOut
&&
IOValue
(
IO_Type
.
HY_OL_Tray_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
HY71_OL_Wait
();
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
{
//托盘在前阻挡处
trayCheckWait
.
Stop
();
trayCheck2LowWait
.
Stop
();
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY71_OL_Wait
);
LogInfo
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到出料线托盘 "
);
ClearTrayRFID
();
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_OL_Tray_Check
,
IO_VALUE
.
HIGH
));
}
}
}
else
else
{
{
...
@@ -277,7 +272,24 @@ namespace OnlineStore.DeviceLibrary
...
@@ -277,7 +272,24 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
" CheckFixture "
+
"失败,未得到锁"
);
LogUtil
.
error
(
Name
+
" CheckFixture "
+
"失败,未得到锁"
);
}
}
}
}
private
void
HY71_OL_Wait
()
{
bool
check2IsOk
=
CheckStopWatch
(
trayCheck2LowWait
,
TrayWaitTime
,
false
);
if
(
CheckStopWatch
(
trayCheckWait
,
TrayWaitTime
,
false
)
&&
check2IsOk
)
{
preTrayIsC1Line
=
false
;
//托盘在前阻挡处
trayCheckWait
.
Stop
();
trayCheck2LowWait
.
Stop
();
MoveInfo
.
NewMove
(
LineMoveType
.
Fixture
);
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
HY71_OL_Wait
);
LogInfo
(
" 托盘检测:"
+
MoveInfo
.
SLog
+
",检测到出料线托盘 "
);
ClearTrayRFID
();
IOMove
(
IO_Type
.
HY_OL_StopDown
,
IO_VALUE
.
LOW
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
HY_OL_Tray_Check
,
IO_VALUE
.
HIGH
));
}
}
protected
override
void
FixtureProcess
()
protected
override
void
FixtureProcess
()
{
{
if
(
MoveInfo
.
IsInWait
)
if
(
MoveInfo
.
IsInWait
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论