Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 9fea21ae
由
LN
编写于
2019-12-10 19:08:57 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
托盘横移修改:托盘检测信号需要持续500。阻挡气缸单独下降。
1 个父辈
e095c294
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
119 行增加
和
89 行删除
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblyLine/LineBean_Partial.cs
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
source/DeviceLibrary/assemblyLine/ProvidingEquip_Partial.cs
source/DeviceLibrary/assemblymanager/TrayManager.cs
source/DeviceLibrary/model/KTK_Store.cs
source/DeviceLibrary/model/StoreStep.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
9fea21a
...
...
@@ -34,7 +34,8 @@ namespace OnlineStore.DeviceLibrary
/// 升降轴
/// </summary>
public
AxisBean
UpdownAxis
=
null
;
public
delegate
void
TrayProcessEnd
(
int
swNum
,
int
trayNum
);
protected
virtual
void
StopMoveProcess
()
{
}
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
9fea21a
...
...
@@ -43,6 +43,7 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
public
event
TrayProcessEnd
TrayPEndEvent
;
#
region
托盘检测
private
InOutParam
CheckParam
=
new
InOutParam
();
private
void
StartCheckFixture
()
...
...
@@ -53,11 +54,9 @@ namespace OnlineStore.DeviceLibrary
}
if
(
Config
.
SidesWayNum
>
0
)
{
bool
isTestNeed
=
(
LineManager
.
Line
.
runStatus
<=
LineRunStatus
.
Wait
);
bool
isNeedTray
=
(
LineManager
.
Line
.
SwNoProcess
(
Config
.
SidesWayNum
));
if
(
IOValue
(
IO_Type
.
SW_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
(
isTestNeed
||
isNeedTray
))
{
bool
canProcess
=
(
LineManager
.
Line
.
SwNoProcess
(
Config
.
SidesWayNum
));
if
(
IOValue
(
IO_Type
.
SW_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
canProcess
)
{
UpdateTrayNum
();
// preTrayNum = currTrayNum;
...
...
@@ -78,14 +77,13 @@ namespace OnlineStore.DeviceLibrary
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
}
}
else
if
(
Config
.
SidesWayNum
.
Equals
(
2
)
&&
IOValue
(
IO_Type
.
SW_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
(
isTestNeed
||
isNeedTray
)
)
else
if
(
Config
.
SidesWayNum
.
Equals
(
2
)
&&
IOValue
(
IO_Type
.
SW_StopCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
canProcess
)
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
,
CheckParam
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
);
CheckLog
(
"检测到SW_StopCheck:"
+
SecondMoveInfo
.
SLog
+
"阻挡气缸下降 ,等待"
+
TrayManager
.
StopDownWaitTime
);
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
HIGH
);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_StopDown, IO_VALUE.LOW));
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
HIGH
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
TrayManager
.
StopDownWaitTime
));
}
}
...
...
@@ -107,7 +105,7 @@ namespace OnlineStore.DeviceLibrary
{
//托盘在第一个阻挡处
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
);
CheckLog
(
" 检测到FL_StopCheck:"
+
SecondMoveInfo
.
SLog
+
" FL阻挡1下降 ,最多等待1秒)"
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
HIGH
));
...
...
@@ -133,11 +131,11 @@ namespace OnlineStore.DeviceLibrary
}
#
region
托盘检测
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
))
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
if
(
Config
.
SidesWayNum
<=
0
)
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡1上升,等待FL_TrayCheck=1)"
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
LOW
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
LOW
));
...
...
@@ -145,11 +143,38 @@ namespace OnlineStore.DeviceLibrary
}
else
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_01_FixtureCheck
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡气缸上升,等待SW_TrayCheck=1)"
);
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
LOW
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SW_TrayCheck
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_01_FixtureCheck
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_02_WaitFixture
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"再次等待SW_TrayCheck=1并需要持续:"
+
TrayManager
.
SwTrayWaitTime
);
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
LOW
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SW_TrayCheck
,
IO_VALUE
.
HIGH
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
TrayManager
.
SwTrayWaitTime
));
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_02_WaitFixture
))
{
if
(
IOValue
(
IO_Type
.
SW_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡气缸上升,等待SW_TrayCheck=1)"
);
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
LOW
);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_StopDown, IO_VALUE.LOW));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SW_TrayCheck
,
IO_VALUE
.
HIGH
));
}
else
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_02_WaitFixture
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
"再次等待SW_TrayCheck=1并需要持续:"
+
TrayManager
.
SwTrayWaitTime
);
IOMove
(
IO_Type
.
SW_StopDown
,
IO_VALUE
.
LOW
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SW_TrayCheck
,
IO_VALUE
.
HIGH
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
TrayManager
.
SwTrayWaitTime
));
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_03_StopCylinder2Down
))
{
...
...
@@ -191,8 +216,7 @@ namespace OnlineStore.DeviceLibrary
else
{
CheckLog
(
"托盘检测:不需要次托盘,结束处理 )"
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
SecondMoveInfo
.
EndMove
();
SMoveEnd
();
}
}
}
...
...
@@ -249,11 +273,10 @@ namespace OnlineStore.DeviceLibrary
{
if
(
Config
.
SidesWayNum
.
Equals
(
2
))
{
//更新横移托盘已处理完成
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
//preTrayNum = currTrayNum;
CheckLog
(
"托盘放行: 此处为环形线横移2,顶升气缸不需要下降, (托盘放行结束) "
);
SecondMoveInfo
.
EndMove
();
SMoveEnd
();
}
else
{
...
...
@@ -275,11 +298,8 @@ namespace OnlineStore.DeviceLibrary
{
if
(
Config
.
SidesWayNum
>
0
)
{
//更新横移托盘已处理完成
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
//preTrayNum = currTrayNum;
CheckLog
(
"托盘放行 SecondStoreMove:(托盘放行结束) "
);
S
econdMoveInfo
.
EndMove
();
S
MoveEnd
();
}
else
{
...
...
@@ -308,8 +328,7 @@ namespace OnlineStore.DeviceLibrary
{
//preTrayNum = currTrayNum;
CheckLog
(
"托盘放行 SecondStoreMove:(托盘放行结束) "
);
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo
.
EndMove
();
SMoveEnd
();
}
#
endregion
...
...
@@ -318,7 +337,7 @@ namespace OnlineStore.DeviceLibrary
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
StartTrayOut
(
SecondMoveInfo
.
MoveParam
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_201_WaitOutEnd
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_201_WaitOutEnd
);
}
else
{
...
...
@@ -333,6 +352,13 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
SMoveEnd
()
{
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
SecondMoveInfo
.
EndMove
();
this
.
TrayPEndEvent
?.
Invoke
(
Config
.
SidesWayNum
,
currTrayNum
);
}
#
endregion
#
region
入料流程
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
查看文件 @
9fea21a
...
...
@@ -12,9 +12,10 @@ namespace OnlineStore.DeviceLibrary
{
#
region
出料流程
private
int
OutStoreHeight
=
-
1
;
internal
bool
CanStartCheckOut
()
internal
bool
CanStartCheckOut
(
int
trayNum
)
{
UpdateTrayNum
();
preTrayNum
=
currTrayNum
;
currTrayNum
=
trayNum
;
if
(
CurrTrayIsNeed
(
currTrayNum
,
true
))
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
,
CheckParam
);
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
9fea21a
...
...
@@ -88,6 +88,7 @@ namespace OnlineStore.DeviceLibrary
AddDeviceName
(
ioList
,
config
.
IOIPList
);
FeedingEquipMap
.
Add
(
config
.
Id
,
equip
);
AllEquipMap
.
Add
(
config
.
Id
,
equip
);
equip
.
TrayPEndEvent
+=
Equip_TrayPEndEvent
;
}
foreach
(
MoveEquip_Config
config
in
configList
.
Values
)
{
...
...
@@ -104,6 +105,7 @@ namespace OnlineStore.DeviceLibrary
AddDeviceName
(
ioList
,
config
.
IOIPList
);
ProvidingEquipMap
.
Add
(
config
.
Id
,
equip
);
AllEquipMap
.
Add
(
config
.
Id
,
equip
);
equip
.
TrayPEndEvent
+=
Equip_TrayPEndEvent
;
}
foreach
(
DischargeLine_Config
config
in
disLineMap
.
Values
)
{
...
...
@@ -203,7 +205,7 @@ namespace OnlineStore.DeviceLibrary
});
}
private
void
AddDeviceName
(
List
<
string
>
targetList
,
List
<
string
>
list
)
{
foreach
(
string
str
in
list
)
...
...
@@ -316,7 +318,7 @@ namespace OnlineStore.DeviceLibrary
private
void
RHomeOp
()
{
TrayManager
.
SidesWayStateMap
=
new
System
.
Collections
.
Concurrent
.
ConcurrentDictionary
<
int
,
int
>()
;
//
TrayManager.SidesWayStateMap = new System.Collections.Concurrent.ConcurrentDictionary<int, int>() ;
alarmType
=
LineAlarmType
.
None
;
mainTimer
.
Enabled
=
false
;
IoCheckTimer
.
Enabled
=
false
;
...
...
source/DeviceLibrary/assemblyLine/LineBean_Partial.cs
查看文件 @
9fea21a
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
查看文件 @
9fea21a
...
...
@@ -418,7 +418,7 @@ namespace OnlineStore.DeviceLibrary
{
//托盘在第一个阻挡处
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
);
CheckLog
(
" 托盘检测:料盘检测StopCylinder_Check1 "
+
SecondMoveInfo
.
SLog
+
"阻挡气缸1-1下降 ,最多等待1秒)"
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
));
...
...
@@ -442,7 +442,7 @@ namespace OnlineStore.DeviceLibrary
}
#
region
托盘检测
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
))
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
CheckLog
(
"托盘阻挡"
+
SecondMoveInfo
.
SLog
+
" 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)"
);
...
...
@@ -450,7 +450,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
StopCylinder_Check2
,
IO_VALUE
.
HIGH
));
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
2
_FixtureCheck
))
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
1
_FixtureCheck
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
CheckLog
(
"托盘阻挡"
+
SecondMoveInfo
.
SLog
+
" 阻挡气缸1-1上升)"
);
...
...
source/DeviceLibrary/assemblyLine/ProvidingEquip_Partial.cs
查看文件 @
9fea21a
...
...
@@ -10,6 +10,7 @@ namespace OnlineStore.DeviceLibrary
{
partial
class
ProvidingEquip
{
public
event
TrayProcessEnd
TrayPEndEvent
;
#
region
托盘检测
protected
override
bool
CheckWaitResult
(
LineMoveInfo
moveInfo
,
WaitResultInfo
wait
)
...
...
@@ -49,7 +50,7 @@ namespace OnlineStore.DeviceLibrary
{
//托盘在第一个阻挡处
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
CheckLog
(
" 托盘检测:"
+
SecondMoveInfo
.
SLog
+
"阻挡气缸1-1下降 ,最多等待1秒)"
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
...
...
@@ -78,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
}
#
region
托盘检测
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
1
_StopCylinder1Down
))
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
0
_StopCylinder1Down
))
{
CheckLog
(
"托盘阻挡"
+
SecondMoveInfo
.
SLog
+
" 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
...
...
@@ -86,7 +87,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
));
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
StopCylinder_Check2
,
IO_VALUE
.
HIGH
));
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
2
_FixtureCheck
))
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_0
1
_FixtureCheck
))
{
CheckLog
(
"托盘阻挡"
+
SecondMoveInfo
.
SLog
+
" 阻挡气缸1-1上升)"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_03_StopCylinder2Down
);
...
...
@@ -129,7 +130,7 @@ namespace OnlineStore.DeviceLibrary
{
bool
isFull
=
TrayManager
.
TrayIsFull
(
currTrayNum
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_15_WaitCanGo
);
LogInfo
(
SecondMoveInfo
.
MoveNum
+
"***************上个托盘号【"
+
preTrayNum
+
"】,当前"
+
(
isFull
?
"有料托盘"
:
"空托盘"
)
+
"【"
+
currTrayNum
+
"】没有出入料任务,放盘通过~"
);
LogInfo
(
SecondMoveInfo
.
MoveNum
+
"***************上个托盘号【"
+
preTrayNum
+
"】,当前"
+
(
isFull
?
"有料托盘"
:
"空托盘"
)
+
"【"
+
currTrayNum
+
"】没有出入料任务,放盘通过~"
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,移栽2,需要判断是否可以放盘通过,最多等待10000)"
);
}
}
...
...
@@ -139,7 +140,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager
.
UpdateTrayNumError
(
DeviceID
,
msg
);
LogUtil
.
error
(
msg
);
return
;
}
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_05_WaitTime
))
{
...
...
@@ -201,9 +202,10 @@ namespace OnlineStore.DeviceLibrary
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_18_StopCylinder_Back
))
{
//preTrayNum = currTrayNum;
CheckLog
(
"托盘放行 SecondMove:(托盘放行结束) "
);
CheckLog
(
"托盘放行 SecondMove:(托盘放行结束)
,出发 TrayPEndEvent
"
);
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo
.
EndMove
();
this
.
TrayPEndEvent
?.
Invoke
(
Config
.
SidesWayNum
,
currTrayNum
);
}
#
endregion
}
...
...
source/DeviceLibrary/assemblymanager/TrayManager.cs
查看文件 @
9fea21a
...
...
@@ -12,6 +12,7 @@ namespace OnlineStore.DeviceLibrary
{
public
class
TrayManager
{
public
static
int
SwTrayWaitTime
=
500
;
public
static
int
StopDownWaitTime
=
500
;
public
static
RFID
RfidReader
=
new
RFID
();
/// <summary>
...
...
@@ -249,38 +250,32 @@ namespace OnlineStore.DeviceLibrary
#
region
横移状态缓存
internal
static
ConcurrentDictionary
<
int
,
int
>
SidesWayStateMap
=
new
ConcurrentDictionary
<
int
,
int
>();
//
internal static ConcurrentDictionary<int, int> SidesWayStateMap = new ConcurrentDictionary<int, int>();
internal
static
int
GetSwStatus
(
int
swNum
)
{
if
(
SidesWayStateMap
.
ContainsKey
(
swNum
))
{
return
SidesWayStateMap
[
swNum
];
}
//
if (SidesWayStateMap.ContainsKey(swNum))
//
{
//
return SidesWayStateMap[swNum];
//
}
return
0
;
}
internal
static
bool
CanMoveSidesWay
(
int
swNum
)
internal
static
bool
LineCanMoveSW
(
int
swNum
)
{
int
status
=
GetSwStatus
(
swNum
);
//若此横移对应的设备未启动,直接可处理
foreach
(
FeedingEquip
equip
in
LineManager
.
Line
.
FeedingEquipMap
.
Values
)
{
if
(
equip
.
Config
.
SidesWayNum
.
Equals
(
swNum
))
{
if
(
equip
.
IsDebug
||
equip
.
runStatus
<=
LineRunStatus
.
Wait
)
if
(
equip
.
runStatus
<=
LineRunStatus
.
Wait
||
equip
.
isInSuddenDown
||
equip
.
isNoAirCheck
)
{
return
true
;
}
//上料3如果报警,可以直接处理移栽
if
(
status
.
Equals
(
0
)
&&
swNum
.
Equals
(
2
)
&&
(
equip
.
isInSuddenDown
||
equip
.
isNoAirCheck
))
if
(
equip
.
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
return
true
;
}
if
(
equip
.
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
).
Equals
(
false
))
{
return
false
;
}
break
;
}
}
...
...
@@ -288,31 +283,17 @@ namespace OnlineStore.DeviceLibrary
{
if
(
equip
.
Config
.
SidesWayNum
.
Equals
(
swNum
))
{
if
(
equip
.
IsDebug
||
equip
.
runStatus
<=
LineRunStatus
.
Wait
)
if
(
equip
.
runStatus
<=
LineRunStatus
.
Wait
||
equip
.
isInSuddenDown
||
equip
.
isNoAirCheck
)
{
return
true
;
}
if
(
equip
.
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
).
Equals
(
false
))
if
(
equip
.
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
return
false
;
return
true
;
}
break
;
}
}
if
(
status
.
Equals
(
1
)
)
{
return
true
;
}
else
if
(
swNum
.
Equals
(
1
)
||
swNum
.
Equals
(
3
))
{
if
(
status
.
Equals
(
0
)
)
{
return
true
;
}
}
return
false
;
}
...
...
@@ -323,19 +304,19 @@ namespace OnlineStore.DeviceLibrary
/// <param name="value">0=未处理等待中,1=托盘处理完成,可处理横移,2=托盘检测处理中</param>
internal
static
void
UpdateSWState
(
int
swNum
,
int
value
)
{
if
(
swNum
<=
0
)
{
return
;
}
if
(
SidesWayStateMap
.
ContainsKey
(
swNum
))
{
SidesWayStateMap
[
swNum
]
=
value
;
}
else
{
SidesWayStateMap
.
TryAdd
(
swNum
,
value
);
}
//
if (swNum <= 0)
//
{
//
return;
//
}
//
if (SidesWayStateMap.ContainsKey(swNum))
//
{
//
SidesWayStateMap[swNum] = value;
//
}
//
else
//
{
//
SidesWayStateMap.TryAdd(swNum, value);
//
}
}
...
...
source/DeviceLibrary/model/KTK_Store.cs
查看文件 @
9fea21a
...
...
@@ -7,7 +7,7 @@ using System.Drawing;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary
{
...
...
@@ -386,9 +386,22 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IoType
,
value
);
}
}
public
void
IOMove
(
string
IoType
,
IO_VALUE
value
)
public
void
IOMove
(
string
IoType
,
IO_VALUE
value
,
int
msTime
=
0
)
{
IOManager
.
IOMove
(
IoType
,
value
,
baseConfig
.
Id
);
if
(
msTime
<=
0
)
{
IOManager
.
IOMove
(
IoType
,
value
,
baseConfig
.
Id
);
}
else
{
Task
.
Factory
.
StartNew
(
delegate
{
IOManager
.
IOMove
(
IoType
,
value
,
baseConfig
.
Id
);
Thread
.
Sleep
(
msTime
);
IO_VALUE
tValue
=
value
.
Equals
(
IO_VALUE
.
HIGH
)
?
IO_VALUE
.
LOW
:
IO_VALUE
.
HIGH
;
IOManager
.
IOMove
(
IoType
,
tValue
,
baseConfig
.
Id
);
});
}
}
public
IO_VALUE
IOValue
(
string
IoType
)
{
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
9fea21a
...
...
@@ -265,11 +265,15 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1下降
/// </summary>
MIO_0
1_StopCylinder1Down
=
3081
,
MIO_0
0_StopCylinder1Down
=
3080
,
/// <summary>
///移载(流水线)装置出入库处理,夹具检测1-4=1
/// </summary>
MIO_02_FixtureCheck
=
3082
,
MIO_01_FixtureCheck
=
3081
,
/// <summary>
/// 移载(流水线)装置出入库处理,等待夹具持续500毫秒
/// </summary>
MIO_02_WaitFixture
=
3082
,
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1上升
/// </summary>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论