Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 7bbe83b1
由
张东亮
编写于
2022-07-31 11:55:50 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
20220730 进仓门口连续流入托盘问题处理
1 个父辈
6595b475
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
27 行增加
和
67 行删除
source/AssemblyLineClient/FrmLineStore.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblyLine/LineBean_Shunt.cs
source/DeviceLibrary/assemblyLine/MoveEquip.cs
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
source/DeviceLibrary/assemblymanager/RFIDManagercs.cs
source/AssemblyLineClient/FrmLineStore.cs
查看文件 @
7bbe83b
...
@@ -364,8 +364,7 @@ namespace OnlineStore.AssemblyLine
...
@@ -364,8 +364,7 @@ namespace OnlineStore.AssemblyLine
{
{
MessageBox
.
Show
(
lineBean
.
Name
+
"当前状态:"
+
lineBean
.
runStatus
+
",不能启动!"
);
MessageBox
.
Show
(
lineBean
.
Name
+
"当前状态:"
+
lineBean
.
runStatus
+
",不能启动!"
);
return
;
return
;
}
}
RFIDManager
.
ClearAllBuff
();
LogUtil
.
info
(
"点击 开始启动"
);
LogUtil
.
info
(
"点击 开始启动"
);
startTimer
.
Interval
=
300
;
startTimer
.
Interval
=
300
;
startTimer
.
Elapsed
+=
timer_Elapsed
;
startTimer
.
Elapsed
+=
timer_Elapsed
;
...
@@ -447,7 +446,6 @@ namespace OnlineStore.AssemblyLine
...
@@ -447,7 +446,6 @@ namespace OnlineStore.AssemblyLine
MessageBox
.
Show
(
lineBean
.
Name
+
"流水线未启动,无法复位"
);
MessageBox
.
Show
(
lineBean
.
Name
+
"流水线未启动,无法复位"
);
return
;
return
;
}
}
RFIDManager
.
ClearAllBuff
();
LogUtil
.
info
(
lineBean
.
Name
+
"点击:复位"
);
LogUtil
.
info
(
lineBean
.
Name
+
"点击:复位"
);
lineBean
.
Reset
();
lineBean
.
Reset
();
}
}
...
...
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
7bbe83b
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
7bbe83b
...
@@ -205,7 +205,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -205,7 +205,7 @@ namespace OnlineStore.DeviceLibrary
if
(
Config
.
SidesWayNum
<=
0
)
if
(
Config
.
SidesWayNum
<=
0
)
{
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_Stop2Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_Stop2Down
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡1上升,等待FL_TrayCheck=1
,最多等待30秒"
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡1上升,等待FL_TrayCheck=1
"
);
//,最多等待30秒
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_TrayCheck
,
IO_VALUE
.
HIGH
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_TrayCheck
,
IO_VALUE
.
HIGH
));
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
//SecondMoveInfo.OneWaitCanEndStep = true;
//SecondMoveInfo.OneWaitCanEndStep = true;
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
7bbe83b
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblyLine/LineBean_Shunt.cs
查看文件 @
7bbe83b
...
@@ -107,10 +107,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -107,10 +107,12 @@ namespace OnlineStore.DeviceLibrary
{
{
ShuntTrayNum
=
ShuntWaitTrayNum
;
ShuntTrayNum
=
ShuntWaitTrayNum
;
ShuntWaitTrayNum
=
-
1
;
ShuntWaitTrayNum
=
-
1
;
LogUtil
.
debug
(
$
"UpateShuntTrayNum:ShuntTrayNum={ShuntTrayNum},ShuntWaitTrayNum=-1"
);
}
}
public
void
ShuntStop
()
public
void
ShuntStop
()
{
{
ShuntWaitTrayNum
=
-
1
;
ShuntWaitTrayNum
=
-
1
;
LogUtil
.
debug
(
$
"ShuntWaitTrayNum=-1"
);
ShuntCheck1Watch
.
Stop
();
ShuntCheck1Watch
.
Stop
();
shuntCheck4Watch
.
Stop
();
shuntCheck4Watch
.
Stop
();
...
@@ -249,18 +251,22 @@ namespace OnlineStore.DeviceLibrary
...
@@ -249,18 +251,22 @@ namespace OnlineStore.DeviceLibrary
else
else
{
{
Shunt_MoveInfo
.
NextMoveStep
(
LineMoveStep
.
Shunt04_Stop1Down
);
Shunt_MoveInfo
.
NextMoveStep
(
LineMoveStep
.
Shunt04_Stop1Down
);
LogUtil
.
info
(
Name
+
"["
+
ShuntTrayNum
+
"]"
+
"分流横移: 不需要分流,直接放行,Shunt_StopDown1_Front 下降1200 "
);
LogUtil
.
info
(
Name
+
"["
+
ShuntTrayNum
+
"]"
+
"分流横移: 不需要分流,直接放行,Shunt_StopDown1_Front "
);
IOMove
(
IO_Type
.
Shunt_StopDown1_Front
,
IO_VALUE
.
HIGH
,
1200
);
IOMove
(
IO_Type
.
Shunt_StopDown1_Front
,
IO_VALUE
.
HIGH
);
//1200
Shunt_MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Shunt_StopDown1_Front
,
IO_VALUE
.
HIGH
));
Shunt_MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Shunt_Check1_Front
,
IO_VALUE
.
LOW
));
}
}
}
}
else
if
(
Shunt_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt04_Stop1Down
))
else
if
(
Shunt_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt04_Stop1Down
))
{
{
Shunt_MoveInfo
.
NextMoveStep
(
LineMoveStep
.
Shunt05_WaitCheck1Low
);
Shunt_MoveInfo
.
NextMoveStep
(
LineMoveStep
.
Shunt05_WaitCheck1Low
);
ShuntLog
(
"分流横移: 不需要分流,等待检测1信号消失 "
);
ShuntLog
(
"分流横移: 不需要分流,等待检测1信号消失300ms "
);
Shunt_MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
300
));
Shunt_MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Shunt_Check1_Front
,
IO_VALUE
.
LOW
));
Shunt_MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Shunt_Check1_Front
,
IO_VALUE
.
LOW
));
}
}
else
if
(
Shunt_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt05_WaitCheck1Low
))
else
if
(
Shunt_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt05_WaitCheck1Low
))
{
{
IOMove
(
IO_Type
.
Shunt_StopDown1_Front
,
IO_VALUE
.
LOW
);
Shunt_MoveInfo
.
EndMove
();
Shunt_MoveInfo
.
EndMove
();
ShuntLog
(
"分流横移: 已离开 "
);
ShuntLog
(
"分流横移: 已离开 "
);
}
}
...
...
source/DeviceLibrary/assemblyLine/MoveEquip.cs
查看文件 @
7bbe83b
...
@@ -61,6 +61,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -61,6 +61,11 @@ namespace OnlineStore.DeviceLibrary
ClampNeedCheck
=
config
.
DIList
.
ContainsKey
(
IO_Type
.
ClampCylinder_Check
);
ClampNeedCheck
=
config
.
DIList
.
ContainsKey
(
IO_Type
.
ClampCylinder_Check
);
UpdownAxis
=
new
AxisBean
(
config
.
UpDown_Axis
,
Name
);
UpdownAxis
=
new
AxisBean
(
config
.
UpDown_Axis
,
Name
);
readBuffRfidTimer
=
new
System
.
Timers
.
Timer
();
readBuffRfidTimer
.
Enabled
=
false
;
readBuffRfidTimer
.
Interval
=
300
;
readBuffRfidTimer
.
Elapsed
+=
ReadRfidBuff
;
readBuffRfidTimer
.
AutoReset
=
true
;
}
}
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
override
bool
StartRun
(
bool
isDebug
=
false
)
...
@@ -177,6 +182,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -177,6 +182,11 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
ResetEnd
()
private
void
ResetEnd
()
{
{
//启动rfid监听
//readBuffRfidThread = new Thread(ReadRfidBuff);
//readBuffRfidThread.IsBackground = true;
//readBuffRfidThread.Start();
readBuffRfidTimer
.
Enabled
=
true
;
LogInfo
(
MoveInfo
.
MoveType
+
" 完成!"
);
LogInfo
(
MoveInfo
.
MoveType
+
" 完成!"
);
runStatus
=
LineRunStatus
.
Runing
;
runStatus
=
LineRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
...
@@ -232,6 +242,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -232,6 +242,7 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
CheckAndMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
CheckAndMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
CheckAndMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
runStatus
=
LineRunStatus
.
Wait
;
runStatus
=
LineRunStatus
.
Wait
;
readBuffRfidTimer
.
Enabled
=
false
;
}
}
...
...
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
查看文件 @
7bbe83b
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblymanager/RFIDManagercs.cs
查看文件 @
7bbe83b
...
@@ -7,6 +7,7 @@ using System.Collections.Concurrent;
...
@@ -7,6 +7,7 @@ using System.Collections.Concurrent;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
System.Windows.Forms
;
...
@@ -14,7 +15,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -14,7 +15,7 @@ namespace OnlineStore.DeviceLibrary
{
{
public
class
RFIDManager
public
class
RFIDManager
{
{
p
rivate
static
int
DefaultTrayNum
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
DefaultTrayNum
);
p
ublic
static
int
DefaultTrayNum
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
DefaultTrayNum
);
private
static
ReadAll
readAll
=
new
ReadAll
(
"TheRFID"
);
private
static
ReadAll
readAll
=
new
ReadAll
(
"TheRFID"
);
private
static
bool
IsOpen
=
false
;
private
static
bool
IsOpen
=
false
;
private
static
ConcurrentDictionary
<
string
,
string
>
LastRfidMap
=
new
ConcurrentDictionary
<
string
,
string
>();
private
static
ConcurrentDictionary
<
string
,
string
>
LastRfidMap
=
new
ConcurrentDictionary
<
string
,
string
>();
...
@@ -40,53 +41,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -40,53 +41,6 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
"Open 出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
"Open 出错:"
+
ex
.
ToString
());
}
}
}
}
public
static
ConcurrentDictionary
<
string
,
ConcurrentQueue
<
RFIDBuff
>>
RfidBuff
=
new
ConcurrentDictionary
<
string
,
ConcurrentQueue
<
RFIDBuff
>>();
static
int
getFirstTrayNum
(
string
ip
,
int
curNum
)
{
RFIDBuff
rFIDBuff
=
new
RFIDBuff
()
{
TrayNum
=
curNum
,
UpdateTime
=
DateTime
.
Now
};
if
(!
RfidBuff
.
ContainsKey
(
ip
))
{
RfidBuff
.
TryAdd
(
ip
,
new
ConcurrentQueue
<
RFIDBuff
>());
RfidBuff
[
ip
].
Enqueue
(
rFIDBuff
);
}
else
{
if
(!
RfidBuff
[
ip
].
Contains
(
rFIDBuff
))
RfidBuff
[
ip
].
Enqueue
(
rFIDBuff
);
}
LogUtil
.
info
(
$
"[{ip}]加入缓存:{JsonHelper.SerializeObject(rFIDBuff)}"
);
if
(
RfidBuff
[
ip
].
TryDequeue
(
out
RFIDBuff
rFID
))
{
LogUtil
.
info
(
$
"[{ip}]取第一个RFID:{JsonHelper.SerializeObject(rFID)}"
);
return
rFID
.
TrayNum
;
}
else
return
0
;
}
static
void
clearTrayNumBuff
(
string
ip
)
{
//if (RfidBuff.ContainsKey(ip))
//{
// if (RfidBuff[ip].Count>0)
// RfidBuff[ip] = new ConcurrentQueue<RFIDBuff>();
//}
//LogUtil.info($"[{ip}]清除RFID缓存");
}
public
static
void
ClearAllBuff
()
{
//RfidBuff = new ConcurrentDictionary<string, ConcurrentQueue<RFIDBuff>>();
//LogUtil.info($"清除所有RFID缓存");
}
public
static
bool
CheckHasSecond
(
int
subType
)
{
//string ip = GetRFIP(subType);
//if (RfidBuff.ContainsKey(ip))
//{
// if (RfidBuff[ip].Count > 0)
// return true;
//}
return
false
;
}
public
static
int
GetTrayNum
(
int
subType
,
bool
isClear
=
false
)
public
static
int
GetTrayNum
(
int
subType
,
bool
isClear
=
false
)
{
{
if
(
DefaultTrayNum
>
0
)
if
(
DefaultTrayNum
>
0
)
...
@@ -109,7 +63,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -109,7 +63,7 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
data
.
RFType
.
Equals
(
'E'
))
if
(
data
.
RFType
.
Equals
(
'E'
))
{
{
return
data
.
Num
;
// return getFirstTrayNum(ip, data.Num);
return
data
.
Num
;
}
}
else
if
(
data
.
RFType
>
0
)
else
if
(
data
.
RFType
>
0
)
{
{
...
@@ -139,7 +93,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -139,7 +93,6 @@ namespace OnlineStore.DeviceLibrary
string
ip
=
GetRFIP
(
subType
);
string
ip
=
GetRFIP
(
subType
);
RFIDData
data
=
ReadRFID
(
ip
,
true
);
RFIDData
data
=
ReadRFID
(
ip
,
true
);
clearTrayNumBuff
(
ip
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
...
@@ -210,16 +163,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -210,16 +163,8 @@ namespace OnlineStore.DeviceLibrary
}
}
public
class
RFIDBuff
public
class
RFIDBuff
{
{
public
int
TrayNum
{
get
;
set
;
}
public
RFIDData
FIDData
{
get
;
set
;
}
public
DateTime
UpdateTime
{
get
;
set
;
}
public
int
TrayNum
{
get
{
return
FIDData
.
Num
;
}
}
public
override
bool
Equals
(
object
obj
)
{
RFIDBuff
buf
=
obj
as
RFIDBuff
;
if
(
buf
==
null
)
return
false
;
return
this
.
TrayNum
.
Equals
(
buf
.
TrayNum
);
}
}
}
public
class
RFIDData
public
class
RFIDData
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论