Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3d8c9bd3
由
LN
编写于
2019-12-07 18:43:37 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
紧急出库修改
1 个父辈
34140148
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
251 行增加
和
210 行删除
source/AssemblyLineClient/FrmFeedingEquip.cs
source/AssemblyLineClient/FrmMoveEquip.cs
source/AssemblyLineClient/FrmProvidingEquip.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip.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/baan/AxisBean.cs
source/DeviceLibrary/model/InOutParam.cs
source/DeviceLibrary/model/StoreStep.cs
source/DeviceLibrary/model/TrayInfo.cs
source/AssemblyLineClient/FrmFeedingEquip.cs
查看文件 @
3d8c9bd
...
...
@@ -411,7 +411,7 @@ namespace OnlineStore.AssemblyLine
int
speed
=
equipBean
.
Config
.
UpdownAxis_P2Speed
;
LogUtil
.
info
(
"点击【移栽位置P2】,料盘高度【"
+
cmbSizeList
.
Text
+
"】 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
...
...
@@ -444,7 +444,7 @@ namespace OnlineStore.AssemblyLine
int
position
=
FormUtil
.
GetIntValue
(
txtP1
);
int
speed
=
equipBean
.
Config
.
UpdownAxis_P1Speed
;
LogUtil
.
info
(
"点击【移栽升降轴待机位置P1:】, 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
private
void
btnSave_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -490,19 +490,19 @@ namespace OnlineStore.AssemblyLine
private
void
btnBP1_Click
(
object
sender
,
EventArgs
e
)
{
int
position
=
FormUtil
.
GetIntValue
(
txtBp1
);
equipBean
.
BatchAxis
.
AbsMove
(
position
,
equipBean
.
Config
.
BatchAxis_P1Speed
);
equipBean
.
BatchAxis
.
AbsMove
(
null
,
position
,
equipBean
.
Config
.
BatchAxis_P1Speed
);
}
private
void
btnBP2_Click
(
object
sender
,
EventArgs
e
)
{
int
position
=
FormUtil
.
GetIntValue
(
txtBP2
);
equipBean
.
BatchAxis
.
AbsMove
(
position
,
equipBean
.
Config
.
BatchAxis_P2Speed
);
equipBean
.
BatchAxis
.
AbsMove
(
null
,
position
,
equipBean
.
Config
.
BatchAxis_P2Speed
);
}
private
void
btnBP3_Click
(
object
sender
,
EventArgs
e
)
{
int
position
=
FormUtil
.
GetIntValue
(
txtBP3
);
equipBean
.
BatchAxis
.
AbsMove
(
position
,
equipBean
.
Config
.
BatchAxis_P3Speed
);
equipBean
.
BatchAxis
.
AbsMove
(
null
,
position
,
equipBean
.
Config
.
BatchAxis_P3Speed
);
}
private
void
btnBSave_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -539,7 +539,7 @@ namespace OnlineStore.AssemblyLine
int
position
=
FormUtil
.
GetIntValue
(
txtUpdownP3
);
int
speed
=
equipBean
.
Config
.
UpdownAxis_P3Speed
;
LogUtil
.
info
(
"点击【移栽升降轴取料位置P3:】, 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
private
void
chbMoveStop_CheckedChanged
(
object
sender
,
EventArgs
e
)
...
...
source/AssemblyLineClient/FrmMoveEquip.cs
查看文件 @
3d8c9bd
...
...
@@ -395,7 +395,7 @@ namespace OnlineStore.AssemblyLine
int
position
=
FormUtil
.
GetIntValue
(
txtP2
);
int
speed
=
equipBean
.
Config
.
UpdownAxis_P2Speed
;
LogUtil
.
info
(
"点击【移栽位置】,料盘高度【"
+
cmbSizeList
.
Text
+
"】 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
...
...
@@ -435,7 +435,7 @@ namespace OnlineStore.AssemblyLine
int
speed
=
equipBean
.
Config
.
UpdownAxis_P1Speed
;
LogUtil
.
info
(
"点击【P1点测试】, 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
...
...
@@ -460,7 +460,7 @@ namespace OnlineStore.AssemblyLine
int
speed
=
equipBean
.
Config
.
UpdownAxis_P3Speed
;
LogUtil
.
info
(
"点击【料仓门口下降位置】,料盘高度【"
+
cmbSizeList
.
Text
+
"】 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBean
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBean
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
...
...
source/AssemblyLineClient/FrmProvidingEquip.cs
查看文件 @
3d8c9bd
...
...
@@ -363,7 +363,7 @@ namespace OnlineStore.AssemblyLine
{
int
speed
=
equipBean
.
Config
.
UpdownAxis_P3Speed
;
LogUtil
.
info
(
"点击【出料皮带线位置P3】,料盘高度【"
+
cmbSizeList
.
Text
+
"】 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBase
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBase
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
}
private
void
btnMoveto_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -373,7 +373,7 @@ namespace OnlineStore.AssemblyLine
{
int
speed
=
equipBean
.
Config
.
UpdownAxis_P2Speed
;
LogUtil
.
info
(
"点击【移栽位置】,料盘高度【"
+
cmbSizeList
.
Text
+
"】 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBase
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBase
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
}
private
void
btnMoveToP1_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -383,7 +383,7 @@ namespace OnlineStore.AssemblyLine
{
int
speed
=
equipBean
.
Config
.
UpdownAxis_P1Speed
;
LogUtil
.
info
(
"点击【P1点测试】, 位置【"
+
position
+
"】速度【"
+
speed
+
"】"
);
equipBase
.
UpdownAxis
.
AbsMove
(
position
,
speed
);
equipBase
.
UpdownAxis
.
AbsMove
(
null
,
position
,
speed
);
}
}
private
void
cmbSizeList_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
...
...
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
3d8c9bd
...
...
@@ -540,7 +540,7 @@ namespace OnlineStore.DeviceLibrary
msg
+=
"runStatus:"
.
PadRight
(
tLength
,
' '
)
+
runStatus
+
"\n"
;
msg
+=
"lineStatus:"
.
PadRight
(
tLength
,
' '
)
+
lineStatus
+
"\n"
;
msg
+=
"MoveType:"
.
PadRight
(
tLength
,
' '
)
+
MoveInfo
.
MoveType
+
"\n"
;
msg
+=
"MoveStep:"
.
PadRight
(
tLength
,
' '
)
+
MoveInfo
.
MoveStep
+
"\n"
;
msg
+=
"MoveStep:"
.
PadRight
(
tLength
,
' '
)
+
MoveInfo
.
SLog
+
"\n"
;
msg
+=
"SMoveType:"
.
PadRight
(
tLength
,
' '
)
+
SecondMoveInfo
.
MoveType
+
"\n"
;
msg
+=
"SMoveStep:"
.
PadRight
(
tLength
,
' '
)
+
SecondMoveInfo
.
MoveStep
+
""
;
return
msg
;
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
3d8c9bd
...
...
@@ -96,19 +96,25 @@ namespace OnlineStore.DeviceLibrary
}
private
void
StartReset
()
{
{
if
(
OutStoreHeight
>
0
)
{
LogInfo
(
"复位前,清理出库高度:"
+
OutStoreHeight
);
}
OutStoreHeight
=
-
1
;
BatchAxisStopCheck
();
ResetClearData
();
lineStatus
=
LineStatus
.
ResetMove
;
IOMove
(
IO_Type
.
SL_HddLed
,
IO_VALUE
.
HIGH
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FR_00_LineRun
);
LogInfo
(
MoveInfo
.
MoveType
+
":"
+
MoveInfo
.
SLog
+
":开始复位,放料顶升下降, 所有阻挡上升,链条先转动3秒钟"
);
LogInfo
(
MoveInfo
.
MoveType
+
":"
+
MoveInfo
.
SLog
+
":开始复位,放料顶升下降, 所有阻挡上升,链条先转动3秒钟
或等待定位工位有料架
"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
//CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up);
//CylinderMove(MoveInfo, IO_Type.SL_OutTopCylinder_Up, IO_Type.SL_OutTopCylinder_Down);
//阻挡上升
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Out_StopDown
,
IO_VALUE
.
LOW
);
if
(
Config
.
SidesWayNum
<=
0
)
{
...
...
@@ -126,7 +132,8 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_LocationSideWay_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
HIGH
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_Location_Check
,
IO_VALUE
.
HIGH
));
MoveInfo
.
OneWaitCanEndStep
=
true
;
isInPro
=
false
;
}
//复位时,应该先提升伺服回原点,然后提升伺服下降到P2点,放开定位气缸,顶升气缸下降,提升伺服在上升到P1点。
...
...
@@ -150,7 +157,9 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_LocationSideWay_Run
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
LOW
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_LocationSideWay_Run
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
LOW
));
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Down
,
IO_Type
.
SL_MoveCylinder_Up
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_OutTopCylinder_Up
,
IO_Type
.
SL_OutTopCylinder_Down
);
if
(
Config
.
SidesWayNum
<=
0
)
...
...
@@ -218,9 +227,18 @@ namespace OnlineStore.DeviceLibrary
case
LineMoveStep
.
FR_08_MoveCylinder_Slack
:
if
(
MoveCylineCanTakeOrGive
())
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FR_09_MoveCylinder_Give
);
LogInfo
(
MoveInfo
.
MoveType
+
":"
+
MoveInfo
.
SLog
+
": 上料横移气缸放料端SOL"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Take
,
IO_Type
.
SL_MoveCylinder_Give
);
if
(
Config
.
IsCanOut
.
Equals
(
1
))
{
LogInfo
(
MoveInfo
.
MoveType
+
":"
+
MoveInfo
.
SLog
+
": 上料横移气缸取料端SOL"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Give
,
IO_Type
.
SL_MoveCylinder_Take
);
}
else
{
LogInfo
(
MoveInfo
.
MoveType
+
":"
+
MoveInfo
.
SLog
+
": 上料横移气缸放料端SOL"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Take
,
IO_Type
.
SL_MoveCylinder_Give
);
}
}
else
{
...
...
@@ -271,12 +289,14 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public
override
void
StopRun
()
{
runStatus
=
LineRunStatus
.
Wait
;
lineStatus
=
LineStatus
.
StoreOnline
;
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
runStatus
=
LineRunStatus
.
Wait
;
}
...
...
@@ -633,7 +653,7 @@ namespace OnlineStore.DeviceLibrary
ProcessShelfEnter
=
true
;
//进料阻挡下降,缓冲阻挡上升
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
//
IOMove(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW);
//转动线体
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
3d8c9bd
...
...
@@ -10,7 +10,7 @@ namespace OnlineStore.DeviceLibrary
{
partial
class
FeedingEquip
{
protected
override
bool
CheckWaitResult
(
LineMoveInfo
moveInfo
,
WaitResultInfo
wait
)
protected
override
bool
CheckWaitResult
(
LineMoveInfo
moveInfo
,
WaitResultInfo
wait
)
{
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W101_BatchAxisMove
))
{
...
...
@@ -38,8 +38,9 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
#
region
托盘检测
private
InOutParam
CheckParam
=
new
InOutParam
();
private
void
StartCheckFixture
()
{
if
(!
LineManager
.
Line
.
CanProcessLine
())
...
...
@@ -51,12 +52,12 @@ namespace OnlineStore.DeviceLibrary
int
num
=
TrayManager
.
GetTrayNum
(
DeviceID
);
bool
isTestNeed
=
(
LineManager
.
Line
.
runStatus
<=
LineRunStatus
.
Wait
);
bool
isNeedTray
=
(
num
>
0
)
&&
(
LineManager
.
Line
.
SwNoProcess
(
Config
.
SidesWayNum
));
if
(
IOValue
(
IO_Type
.
SW_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
(
isTestNeed
||
isNeedTray
))
{
if
(
IOValue
(
IO_Type
.
SW_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
(
isTestNeed
||
isNeedTray
))
{
//判断是否是需要的托盘
if
(
NeedCurrTray
(
))
if
(
CurrTrayIsNeed
(
true
))
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
,
CheckParam
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
CheckLog
(
"检测到SW_TrayCheck:"
+
SecondMoveInfo
.
SLog
+
"横移顶升气缸上升 )"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_06_TopCylinderUp
);
...
...
@@ -66,14 +67,14 @@ namespace OnlineStore.DeviceLibrary
{
preTrayNum
=
num
;
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
)
&&
(
isTestNeed
||
isNeedTray
))
{
//判断是否是需要的托盘
if
(
NeedCurrTray
(
))
if
(
CurrTrayIsNeed
(
true
))
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
,
CheckParam
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
CheckLog
(
"检测到SW_StopCheck:"
+
SecondMoveInfo
.
SLog
+
"阻挡气缸下降 ,最多等待1秒"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_01_StopCylinder1Down
);
...
...
@@ -85,7 +86,7 @@ namespace OnlineStore.DeviceLibrary
{
preTrayNum
=
num
;
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
1
);
}
}
}
}
else
...
...
@@ -167,33 +168,32 @@ namespace OnlineStore.DeviceLibrary
{
preTrayNum
=
currTrayNum
;
currTrayNum
=
TrayManager
.
GetTrayNum
(
DeviceID
);
if
(
Config
.
SidesWayNum
<=
0
)
//出料中,需要拦盘
if
(
CurrTrayIsNeed
(
true
))
{
//出料中,需要拦盘
if
(
NeedCurrTray
(
true
))
SecondMoveInfo
.
MoveParam
=
CheckParam
;
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_06_TopCylinderUp
);
if
(
Config
.
SidesWayNum
<=
0
)
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_05_WaitTime
);
SecondMoveInfo
.
EndStepWait
();
return
;
CheckLog
(
"托盘检测: "
+
SecondMoveInfo
.
SLog
+
" 顶升气缸上 升 )"
);
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
FL_TopCylinder_Down
,
IO_Type
.
FL_TopCylinder_Up
);
}
else
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_15_WaitCanGo
);
TrayInfo
tray
=
TrayManager
.
GetTrayInfo
(
currTrayNum
);
LogInfo
(
SecondMoveInfo
.
MoveNum
+
"***************上个托盘号【"
+
preTrayNum
+
"】,当前 【"
+
tray
.
ToStr
()
+
"】没有出入料任务,放盘通过~"
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,移栽2,需要判断是否可以放盘通过,最多等待10000)"
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
" 需要此托盘,横移顶升气缸上 升 )"
);
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
SW_TopCylinder_Down
,
IO_Type
.
SW_TopCylinder_Up
);
}
}
else
{
//判断是否是需要的托盘
if
(
NeedCurrTray
())
if
(
Config
.
SidesWayNum
<=
0
)
{
SecondMoveInfo
.
NewMove
(
LineMoveType
.
CheckFixture
);
TrayManager
.
UpdateSWState
(
Config
.
SidesWayNum
,
2
);
CheckLog
(
"托盘检测:"
+
SecondMoveInfo
.
SLog
+
" 需要此托盘,横移顶升气缸上 升 )"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_06_TopCylinderUp
);
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
SW_TopCylinder_Down
,
IO_Type
.
SW_TopCylinder_Up
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_15_WaitCanGo
);
TrayInfo
tray
=
TrayManager
.
GetTrayInfo
(
currTrayNum
);
LogInfo
(
SecondMoveInfo
.
MoveNum
+
"***************上个托盘号【"
+
preTrayNum
+
"】,当前 【"
+
tray
.
ToStr
()
+
"】没有出入料任务,放盘通过~"
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,移栽2,需要判断是否可以放盘通过,最多等待10000)"
);
}
else
{
...
...
@@ -203,12 +203,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_05_WaitTime
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_06_TopCylinderUp
);
CheckLog
(
"托盘检测: "
+
SecondMoveInfo
.
SLog
+
" 顶升气缸上 升 )"
);
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
FL_TopCylinder_Down
,
IO_Type
.
FL_TopCylinder_Up
);
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MIO_06_TopCylinderUp
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_07_LocationCylinderUp
);
...
...
@@ -229,13 +224,13 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
SecondMoveInfo
.
MoveNum
+
SecondMoveInfo
.
SLog
+
"*************** 托盘号【"
+
currTrayNum
+
"】 ,需要入料,移栽料盘"
);
SecondMoveInfo
.
EndStepWait
();
}
else
else
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_200_WaitInoutParam
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
300
));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitFeedNoMove());
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitFeedNoMove());
LogInfo
(
SecondMoveInfo
.
MoveNum
+
SecondMoveInfo
.
SLog
+
" ,托盘号【"
+
currTrayNum
+
"】需要出库,等待开始出库"
);
}
}
}
...
...
@@ -275,6 +270,15 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_14_TopCylinder_Down
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_15_WaitCanGo
);
if
(
Config
.
SidesWayNum
>
0
)
{
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,等待托盘离开"
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SW_TrayCheck
,
IO_VALUE
.
LOW
));
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_15_WaitCanGo
))
{
if
(
Config
.
SidesWayNum
>
0
)
{
...
...
@@ -286,16 +290,11 @@ namespace OnlineStore.DeviceLibrary
}
else
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_15_WaitCanGo
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,移栽2,需要判断是否可以放盘通过,最多等待10000)"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_16_StopCylinder2_Down
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,阻挡气缸1-2下降)"
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
));
}
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_15_WaitCanGo
))
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_16_StopCylinder2_Down
);
CheckLog
(
"托盘放行 "
+
SecondMoveInfo
.
SLog
+
" ,阻挡气缸1-2下降)"
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
SecondMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
));
// SecondMoveInfo.EndStepWait();
}
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_16_StopCylinder2_Down
))
...
...
@@ -321,12 +320,13 @@ namespace OnlineStore.DeviceLibrary
}
#
endregion
else
if
(
SecondMoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MO_200_WaitInoutParam
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
StartTrayOut
(
SecondMoveInfo
.
MoveParam
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_201_WaitOutEnd
);
}
else
{
...
...
@@ -414,19 +414,19 @@ namespace OnlineStore.DeviceLibrary
else
if
(
IOValue
(
IO_Type
.
SL_Stop_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FI_03_LineStart
);
InLog
(
"入料检测: "
+
MoveInfo
.
SLog
+
" 阻挡工位检测有料架,进料阻挡
上升
,缓冲阻挡下降,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
HIGH
);
//进料阻挡
上升
InLog
(
"入料检测: "
+
MoveInfo
.
SLog
+
" 阻挡工位检测有料架,进料阻挡
下降
,缓冲阻挡下降,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
HIGH
);
//进料阻挡
下降
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
//缓冲阻挡下降
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
//等待指定时间
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_Location_Check
,
IO_VALUE
.
HIGH
));
}
else
if
(
IOValue
(
IO_Type
.
SL_Entry_Check
).
Equals
(
IO_VALUE
.
HIGH
))
}
else
if
(
IOValue
(
IO_Type
.
SL_Entry_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FI_03_LineStart
);
InLog
(
"入料检测: "
+
MoveInfo
.
SLog
+
" 进料口检测有料架,进料阻挡
下降
,缓冲阻挡上升,流水线转动 1000"
);
InLog
(
"入料检测: "
+
MoveInfo
.
SLog
+
" 进料口检测有料架,进料阻挡
上升
,缓冲阻挡上升,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
LOW
);
//进料阻挡上升
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
HIGH
);
//缓冲阻挡
下降
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
HIGH
);
//缓冲阻挡
上升
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
//等待指定时间
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
...
...
@@ -609,7 +609,7 @@ namespace OnlineStore.DeviceLibrary
{
InLog
(
"料盘移栽"
+
MoveInfo
.
SLog
+
":记录高度尺寸 高度【"
+
LastHeight
+
"】宽度【"
+
LastWidth
+
"】,已经没有料盘,提升轴开始回下降待机点P2"
);
MoveInfo
.
ShelfNoTray
=
true
;
BatchAxis
.
AbsMove
(
Config
.
BatchAxisP2
,
Config
.
BatchAxis_P2Speed
);
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP2
,
Config
.
BatchAxis_P2Speed
);
}
else
{
...
...
@@ -650,7 +650,7 @@ namespace OnlineStore.DeviceLibrary
TimeSpan
span
=
DateTime
.
Now
-
MoveInfo
.
LastSetpTime
;
if
(
span
.
TotalSeconds
>
180
)
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
MoveStep
+
"]等待空托盘到达超时["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待空托盘到达超时["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
...
...
@@ -687,14 +687,14 @@ namespace OnlineStore.DeviceLibrary
TrayManager
.
UpdateTrayInfo
(
currTrayNum
,
true
,
1
,
code
,
""
,
LastHeight
,
LastWidth
);
if
(
code
.
Equals
(
""
))
{
TrayManager
.
UpdateInStoreNG
(
currTrayNum
,
true
,
"扫码失败"
);
TrayManager
.
UpdateInStoreNG
(
currTrayNum
,
true
,
"扫码失败"
);
}
//从服务器获取库位号
string
result
=
StoreServerManager
.
CodeReceived
(
Name
,
currTrayNum
,
LastCodeList
,
LastHeight
,
LastWidth
);
if
(!
result
.
Equals
(
""
))
{
TrayManager
.
UpdateInStoreNG
(
currTrayNum
,
true
,
result
);
LogUtil
.
error
(
Name
+
"托盘【"
+
currTrayNum
+
"】"
+
result
);
TrayManager
.
UpdateInStoreNG
(
currTrayNum
,
true
,
result
);
LogUtil
.
error
(
Name
+
"托盘【"
+
currTrayNum
+
"】"
+
result
);
}
});
...
...
@@ -819,7 +819,7 @@ namespace OnlineStore.DeviceLibrary
StartMovePosition
=
BatchAxis
.
GetAclPosition
();
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitBatchAxis
(
Config
.
Batch_Axis
,
Config
.
BatchAxisP3
,
Config
.
BatchAxis_P3Speed
));
Config
.
Batch_Axis
.
TargetPosition
=
Config
.
BatchAxisP3
;
BatchAxis
.
AbsMove
(
Config
.
BatchAxisP3
,
Config
.
BatchAxis_P3Speed
);
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP3
,
Config
.
BatchAxis_P3Speed
);
//开始检测信号
BatchAxisStartCheck
();
}
...
...
@@ -882,67 +882,75 @@ namespace OnlineStore.DeviceLibrary
/// 是否需要拦截当前托盘进行处理
/// </summary>
/// <returns></returns>
internal
bool
NeedCurrTray
(
bool
checkAndMove
=
false
)
internal
bool
CurrTrayIsNeed
(
bool
NeedSaveParam
)
{
if
(
IsDebug
&&
runStatus
<=
LineRunStatus
.
Wait
)
{
return
false
;
}
int
trayNum
=
TrayManager
.
GetTrayNum
(
Config
.
Id
);
TrayInfo
info
=
TrayManager
.
GetTrayInfo
(
trayNum
);
InOutParam
param
=
new
InOutParam
(
trayNum
,
info
.
WareCode
,
info
.
PosId
,
info
.
PlateH
,
info
.
PlateW
);
//是出料的模块
if
(
Config
.
IsCanOut
.
Equals
(
1
))
try
{
//此托盘是紧急出料盘,需要通过料架出库
bool
debugNeed
=
IsDebug
&&
runStatus
>=
LineRunStatus
.
Runing
;
if
(
info
.
PosId
.
Equals
(
""
))
if
(
IsDebug
&&
runStatus
<=
LineRunStatus
.
Wait
)
{
param
=
new
InOutParam
(
trayNum
,
"紧急出料测试"
,
"1#AC1_3_2"
,
12
,
7
)
;
return
false
;
}
bool
isJinji
=
info
.
EmergencyOut
&&
info
.
IsFull
&&
runStatus
>=
LineRunStatus
.
Runing
;
int
trayNum
=
TrayManager
.
GetTrayNum
(
Config
.
Id
)
;
if
(
debugNeed
||
isJinji
)
{
if
(
checkAndMove
)
{
SecondMoveInfo
.
MoveParam
=
param
;
}
//判断是否有料架,是否可以出库
if
(
IOValue
(
IO_Type
.
SL_Location_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
LogUtil
.
error
(
Name
+
" 【"
+
info
.
ToStr
()
+
"】需要出库,定位工位无料架,暂不处理"
,
DeviceID
+
16
);
}
else
if
(
OutStoreHeight
<
0
)
TrayInfo
info
=
TrayManager
.
GetTrayInfo
(
trayNum
);
InOutParam
param
=
new
InOutParam
(
trayNum
,
info
.
WareCode
,
info
.
PosId
,
info
.
PlateH
,
info
.
PlateW
);
//是出料的模块
if
(
Config
.
IsCanOut
.
Equals
(
1
))
{
//此托盘是紧急出料盘,需要通过料架出库
bool
debugNeed
=
IsDebug
&&
runStatus
>=
LineRunStatus
.
Runing
;
if
(
info
.
PosId
.
Equals
(
""
))
{
LogUtil
.
error
(
Name
+
" 【"
+
info
.
ToStr
()
+
"】需要出库,料架未准备好,暂不处理"
,
DeviceID
+
1
7
);
param
=
new
InOutParam
(
trayNum
,
"紧急出料测试"
,
"1#AC1_3_2"
,
12
,
7
);
}
else
bool
isJinji
=
info
.
EmergencyOut
&&
info
.
IsFull
&&
runStatus
>=
LineRunStatus
.
Runing
;
if
(
debugNeed
||
isJinji
)
{
return
true
;
//判断是否有料架,是否可以出库
if
(
IOValue
(
IO_Type
.
SL_Location_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
LogUtil
.
error
(
Name
+
" 【"
+
info
.
ToStr
()
+
"】需要出库,定位工位无料架,暂不处理"
,
DeviceID
+
16
);
}
else
if
(
OutStoreHeight
<
0
)
{
LogUtil
.
error
(
Name
+
" 【"
+
info
.
ToStr
()
+
"】需要出库,料架未准备好,暂不处理"
,
DeviceID
+
17
);
}
else
{
if
(
NeedSaveParam
)
{
LogInfo
(
" 【"
+
info
.
ToStr
()
+
"】需要出库,参数信息:"
+
param
.
ToStr
());
CheckParam
=
param
;
}
return
true
;
}
}
}
}
else
{
bool
trayCanUse
=
LineManager
.
Line
.
runStatus
<=
LineRunStatus
.
Wait
||
(!
info
.
IsFull
);
if
(
trayCanUse
&&
runStatus
.
Equals
(
LineRunStatus
.
Busy
)
&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
InStore
))
}
else
{
//入料执行中, 且需要空托盘
if
(
MoveInfo
.
MoveStep
>=
LineMoveStep
.
FI_11_MoveCylinder_Up
&&
MoveInfo
.
MoveStep
<=
LineMoveStep
.
FI_20_WaitTray
)
bool
trayCanUse
=
LineManager
.
Line
.
runStatus
<=
LineRunStatus
.
Wait
||
(!
info
.
IsFull
);
if
(
trayCanUse
&&
runStatus
.
Equals
(
LineRunStatus
.
Busy
)
&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
InStore
)
)
{
if
(
checkAndMove
)
//入料执行中, 且需要空托盘
if
(
MoveInfo
.
MoveStep
>=
LineMoveStep
.
FI_11_MoveCylinder_Up
&&
MoveInfo
.
MoveStep
<=
LineMoveStep
.
FI_20_WaitTray
)
{
SecondMoveInfo
.
MoveParam
=
param
;
if
(
NeedSaveParam
)
{
CheckParam
=
param
;
LogUtil
.
info
(
Name
+
"拦截到空托盘【"
+
trayNum
+
"】,入料执行中,需要空托盘"
);
}
return
true
;
}
LogUtil
.
info
(
Name
+
"拦截到空托盘【"
+
trayNum
+
"】,入料执行中,需要空托盘"
);
return
true
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"CurrTrayIsNeed出错:"
+
ex
.
StackTrace
);
}
return
false
;
}
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
查看文件 @
3d8c9bd
...
...
@@ -14,17 +14,28 @@ namespace OnlineStore.DeviceLibrary
private
int
OutStoreHeight
=
-
1
;
private
void
StartTrayOut
(
InOutParam
outParam
)
private
bool
StartTrayOut
(
InOutParam
outParam
)
{
if
(
outParam
==
null
||
outParam
.
PosId
==
null
||
outParam
.
PosId
.
Equals
(
""
))
{
LogUtil
.
error
(
Name
+
"出库失败,参数不完整:"
)
;
LogUtil
.
error
(
outParam
.
ToStr
());
return
false
;
}
runStatus
=
LineRunStatus
.
Busy
;
lineStatus
=
LineStatus
.
OutStoreExecute
;
MoveInfo
.
NewMove
(
LineMoveType
.
OutStore
,
outParam
);
//可以开始出库啦
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_211_AxisDownMove
);
OutLog
(
"出库移栽 "
+
MoveInfo
.
SLog
+
" :提升伺服下降指定的高度,升降轴回原点"
);
int
targetPosition
=
Config
.
BatchAxisP3
+
outParam
.
PlateH
*
Config
.
Height_ChangeValue
;
BatchAxis
.
AbsMove
(
MoveInfo
,
targetPosition
,
Config
.
BatchAxis_TargetSpeed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxisP1
,
Config
.
UpdownAxis_P1Speed
);
int
targetPosition
=
BatchAxis
.
GetAclPosition
()
-
outParam
.
PlateH
*
Config
.
Height_ChangeValue
;
if
(
targetPosition
<
Config
.
BatchAxisP2
)
{
targetPosition
=
Config
.
BatchAxisP2
;
}
BatchAxis
.
AbsMove
(
MoveInfo
,
targetPosition
,
Config
.
BatchAxis_P2Speed
);
return
true
;
//UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
public
void
StartOutStoreP
()
{
...
...
@@ -61,9 +72,9 @@ namespace OnlineStore.DeviceLibrary
}
else
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_0
1_TrayLocation_After
);
TrayLCylinderAfter
(
MoveInfo
);
OutLog
(
"准备出库料架, "
+
MoveInfo
.
SLog
+
" :升降盘定位气缸后退
"
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_0
0_BatchAxisToP2
);
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP2
,
Config
.
BatchAxis_P2Speed
);
OutLog
(
"准备出库料架, "
+
MoveInfo
.
SLog
+
" :提升伺服先回到P2
"
);
}
return
true
;
}
...
...
@@ -71,6 +82,7 @@ namespace OnlineStore.DeviceLibrary
{
//定位工位有料架,等待1秒后再次检测
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_04_WaitTime
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
OutLog
(
"准备出库料架 "
+
MoveInfo
.
SLog
+
"定位工位检测到料架: 等待1秒再次检测"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
}
...
...
@@ -87,9 +99,9 @@ namespace OnlineStore.DeviceLibrary
else
if
(
IOValue
(
IO_Type
.
SL_Stop_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FI_03_LineStart
);
OutLog
(
"准备出库料架: "
+
MoveInfo
.
SLog
+
" 阻挡工位检测有料架,进料阻挡下降,缓冲阻挡
上升
,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
HIGH
);
//进料阻挡下降
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
//缓冲阻挡上升
OutLog
(
"准备出库料架: "
+
MoveInfo
.
SLog
+
" 阻挡工位检测有料架,进料阻挡下降,缓冲阻挡
下降
,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
//等待指定时间
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
...
...
@@ -98,7 +110,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
IOValue
(
IO_Type
.
SL_Entry_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FI_03_LineStart
);
OutLog
(
"准备出库料架: "
+
MoveInfo
.
SLog
+
" 进料口检测有料架,进料阻挡上升,缓冲阻挡
下降
,流水线转动 1000"
);
OutLog
(
"准备出库料架: "
+
MoveInfo
.
SLog
+
" 进料口检测有料架,进料阻挡上升,缓冲阻挡
上升
,流水线转动 1000"
);
IOMove
(
IO_Type
.
SL_Entry_StopDown
,
IO_VALUE
.
LOW
);
//进料阻挡上升
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
HIGH
);
//缓冲阻挡下降
IOMove
(
IO_Type
.
SL_Line_Run
,
IO_VALUE
.
HIGH
);
...
...
@@ -123,11 +135,11 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Wait
))
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_00_BatchAxisToP2
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_01_TrayLocation_After
);
TrayLCylinderAfter
(
MoveInfo
);
OutLog
(
"准备出库料架
"
+
MoveInfo
.
SLog
+
"
:升降盘定位气缸后退"
);
OutLog
(
"准备出库料架
, "
+
MoveInfo
.
SLog
+
"
:升降盘定位气缸后退"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_01_TrayLocation_After
))
{
...
...
@@ -150,7 +162,7 @@ namespace OnlineStore.DeviceLibrary
{
//定位工位有料架,直接开始入料
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_05_LocationCylinder_Up
);
OutLog
(
"定位工位检测到料架: "
+
MoveInfo
.
SLog
+
" 缓冲阻挡
上升
, 定位气缸上升"
);
OutLog
(
"定位工位检测到料架: "
+
MoveInfo
.
SLog
+
" 缓冲阻挡
下降
, 定位气缸上升"
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
//缓冲阻挡下降
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_LocationCylinder_Down
,
IO_Type
.
SW4_LocationCylinder_Up
);
}
...
...
@@ -158,6 +170,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
Runing
;
lineStatus
=
LineStatus
.
StoreOnline
;
OutLog
(
" 未检测到料架,料架处理结束"
);
}
}
...
...
@@ -180,7 +193,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_08_AxisUpMove
);
OutLog
(
"准备出库料架 "
+
MoveInfo
.
SLog
+
" :上料轴开始慢速上升到P3点,等待检测到料盘"
);
BatchAxisToP3
();
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_08_AxisUpMove
))
{
...
...
@@ -191,6 +204,7 @@ namespace OnlineStore.DeviceLibrary
//如果再出库中直接出库
MoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
Runing
;
lineStatus
=
LineStatus
.
StoreOnline
;
// MoveInfo.NextMoveStep(LineMoveStep.FO_39_OutLineRun);
OutLog
(
"准备出库料架完成"
);
// FO_11_AxisDownMove();
...
...
@@ -214,18 +228,15 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
CanWhileCount
=
0
;
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitBatchAxis
(
Config
.
Batch_Axis
,
tp
,
Config
.
BatchAxis_P3Speed
));
Config
.
Batch_Axis
.
TargetPosition
=
tp
;
BatchAxis
.
AbsMove
(
tp
,
Config
.
BatchAxis_P3Speed
);
BatchAxis
.
AbsMove
(
MoveInfo
,
tp
,
Config
.
BatchAxis_P3Speed
);
//开始检测信号
BatchAxisStartCheck
(
IO_Type
.
SL_AxisLocationCheck
,
IO_VALUE
.
LOW
);
}
}
}
}
else
if
(
MoveInfo
.
MoveStep
>=
LineMoveStep
.
FO_211_AxisDownMove
&&
MoveInfo
.
MoveStep
<=
LineMoveStep
.
FO_33_BatchAxisToP1
)
{
TrayOutProcess
();
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_31_BatchAxisToP2
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_32_TrayLocationCylinder_After
);
...
...
@@ -245,7 +256,7 @@ namespace OnlineStore.DeviceLibrary
OutLog
(
"出料完成 "
+
MoveInfo
.
SLog
+
",出口顶升气缸上升,出料缓冲阻挡上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_OutTopCylinder_Down
,
IO_Type
.
SL_OutTopCylinder_Up
);
IOMove
(
IO_Type
.
SL_Out_StopDown
,
IO_VALUE
.
LOW
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_34_OutTopCylinder_Up
))
{
...
...
@@ -259,10 +270,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_35_SideWayLineRun
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_36_WaitShelfGo
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_36_WaitShelfGo
);
OutLog
(
"出料完成"
+
MoveInfo
.
SLog
+
", 线体横移电机运转,等待料架到达出口"
);
IOMove
(
IO_Type
.
SL_LocationSideWay_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
HIGH
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
SL_Out_Check
,
IO_VALUE
.
HIGH
));
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_36_WaitShelfGo
))
...
...
@@ -274,12 +285,12 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
SL_OutSideWay_Run
,
IO_VALUE
.
LOW
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
300
));
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_37_LineStop
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_38_TopCylinderDown
);
OutLog
(
"出料完成 "
+
MoveInfo
.
SLog
+
", 料架到达出口,出口顶升下降 , "
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_OutTopCylinder_Up
,
IO_Type
.
SL_OutTopCylinder_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_OutTopCylinder_Up
,
IO_Type
.
SL_OutTopCylinder_Down
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
300
));
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_38_TopCylinderDown
))
...
...
@@ -290,23 +301,14 @@ namespace OnlineStore.DeviceLibrary
OutLog
(
"出料完成 "
+
MoveInfo
.
SLog
+
", 出口线体运转,料架到达出口处, 通知AGV取空料架, 出料结束"
);
AgvClient
.
ReadyEmpty
(
Config
.
AgvOutName
);
}
//else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_40_OutLineRun))
//{
// MoveInfo.NextMoveStep(LineMoveStep.FO_40_OutLineRun);
// OutLog("出料完成 " + MoveInfo.SLog + ", AGV到达,继续转动出口线体,送走出料料架, ");
//}
//else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_40_OutLineRun))
//{
// MoveInfo.NextMoveStep(LineMoveStep.FO_41_OutLineRun);
// OutLog("上料完成 " + MoveInfo.SLog + ", 料架送出, ");
//}
//else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_41_OutLineRun))
//{
// MoveInfo.EndMove();
// runStatus = LineRunStatus.Runing;
// lastOutParam = null;
// LogUtil.info("空料架已送出,出料结束");
//}
else
if
(
MoveInfo
.
MoveStep
>=
LineMoveStep
.
FO_211_AxisDownMove
&&
MoveInfo
.
MoveStep
<
LineMoveStep
.
FO_31_BatchAxisToP2
)
{
TrayOutProcess
();
}
else
{
LogUtil
.
error
(
Name
+
" "
+
MoveInfo
.
MoveType
+
MoveInfo
.
SLog
+
"未找到相关处理"
,
19
);
}
}
private
void
TrayOutProcess
()
...
...
@@ -316,74 +318,72 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveCylineCanTakeOrGive
())
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_212_MoveCylinder_Take
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构取料端"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构取料端"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Give
,
IO_Type
.
SL_MoveCylinder_Take
);
}
else
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_211_AxisDownMove
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构取料端 前先上升横移气缸"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构取料端 前先上升横移气缸"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Down
,
IO_Type
.
SL_MoveCylinder_Up
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_212_MoveCylinder_Take
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_213_MoveCylinder_Down
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构下降"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构下降"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Up
,
IO_Type
.
SL_MoveCylinder_Down
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_213_MoveCylinder_Down
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_214_UpdownAxisToP2
);
int
targetP
=
Config
.
GetUpdownPositionP2
(
MoveInfo
.
MoveParam
.
PlateH
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":升降伺服下降到指定位置
"
+
targetP
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":升降伺服下降到P2:
"
+
targetP
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
targetP
,
Config
.
UpdownAxis_P2Speed
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_214_UpdownAxisToP2
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_215_MoveCylinder_Tighten
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料气缸夹紧"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料气缸夹紧"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Slack
,
IO_Type
.
SL_MoveCylinder_Tighten
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_215_MoveCylinder_Tighten
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_216_UpdownAxisToP1
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":升降伺服到P1"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":升降伺服到P1"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxisP1
,
Config
.
UpdownAxis_P1Speed
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_216_UpdownAxisToP1
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_217_MoveCylinder_Up
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构上升,更新【"
+
currTrayNum
+
"】为空托盘"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构上升,更新【"
+
currTrayNum
+
"】为空托盘"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Down
,
IO_Type
.
SL_MoveCylinder_Up
);
//更新此托盘为空托盘
TrayManager
.
UpdateTrayInfo
(
currTrayNum
,
false
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_13_LoactionCylinder_Down
);
SOutLog
(
"紧急出料移栽"
+
SecondMoveInfo
.
MoveStep
+
" 托盘开始放行,定位气缸下降"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SW_LocationCylinder_Up
,
IO_Type
.
SW_LocationCylinder_Down
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_12_MoveOk
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_217_MoveCylinder_Up
))
{
if
(
MoveCylineCanTakeOrGive
())
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_218_MoveCylinder_Give
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构到放料端"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构到放料端"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Take
,
IO_Type
.
SL_MoveCylinder_Give
);
}
else
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_217_MoveCylinder_Up
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
MoveStep
+
":上料横移机构到放料端前先上升横移气缸"
);
OutLog
(
"紧急出料移栽"
+
MoveInfo
.
SLog
+
":上料横移机构到放料端前先上升横移气缸"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SL_MoveCylinder_Down
,
IO_Type
.
SL_MoveCylinder_Up
);
}
}
else
if
(
Second
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_218_MoveCylinder_Give
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_218_MoveCylinder_Give
))
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_219_UpdownAxisToP3
);
OutLog
(
"紧急出料移栽 "
+
MoveInfo
.
SLog
+
":移栽伺服到P3"
);
UpdownAxis
.
AbsMove
(
Config
.
UpDownAxisP3
,
Config
.
UpdownAxis_P3Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxisP3
,
Config
.
UpdownAxis_P3Speed
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_219_UpdownAxisToP3
))
{
...
...
@@ -395,7 +395,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FO_221_UpdownAxisToP1
);
OutLog
(
"紧急出料移栽 "
+
MoveInfo
.
SLog
+
":移栽伺服上升到待机点P1"
);
UpdownAxis
.
AbsMove
(
Config
.
UpDownAxisP1
,
Config
.
UpdownAxis_P1Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
UpDownAxisP1
,
Config
.
UpdownAxis_P1Speed
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FO_221_UpdownAxisToP1
))
{
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
3d8c9bd
...
...
@@ -930,7 +930,7 @@ namespace OnlineStore.DeviceLibrary
msg
+=
"runStatus: "
+
runStatus
+
"\n"
;
msg
+=
"lineStatus: "
+
lineStatus
+
"\n"
;
msg
+=
"MoveType: "
+
MoveInfo
.
MoveType
+
"\n"
;
msg
+=
"MoveStep: "
+
MoveInfo
.
MoveStep
+
"\n"
;
msg
+=
"MoveStep: "
+
MoveInfo
.
SLog
+
"\n"
;
msg
+=
"SW41_Move: "
+
SW41_MoveInfo
.
MoveType
+
" "
+
SW41_MoveInfo
.
MoveStep
+
"\n"
;
msg
+=
"SW23_Move: "
+
SW23_MoveInfo
.
MoveType
+
" "
+
SW23_MoveInfo
.
MoveStep
+
"\n"
;
return
msg
;
...
...
source/DeviceLibrary/assemblyLine/LineBean_Partial.cs
查看文件 @
3d8c9bd
...
...
@@ -110,7 +110,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"InOutTimerProcess出错:"
+
ex
.
ToString
()
);
LogUtil
.
error
(
"InOutTimerProcess出错:"
+
ex
.
StackTrace
);
}
isInprocess
=
false
;
...
...
@@ -663,7 +663,7 @@ namespace OnlineStore.DeviceLibrary
FeedingEquip
equip
=
FeedingEquipMap
[
deviceId
];
if
(
equip
.
runStatus
>=
LineRunStatus
.
Runing
)
{
if
(
equip
.
NeedCurrTray
(
))
if
(
equip
.
CurrTrayIsNeed
(
false
))
{
return
true
;
}
...
...
source/DeviceLibrary/baan/AxisBean.cs
查看文件 @
3d8c9bd
...
...
@@ -114,10 +114,17 @@ namespace OnlineStore.DeviceLibrary
/// 松下伺服电机运动
/// </summary>
public
void
AbsMove
(
LineMoveInfo
MoveInfo
,
int
targetPosition
,
int
targetSpeed
)
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAxis
(
Config
,
targetPosition
,
targetSpeed
));
Config
.
TargetPosition
=
targetPosition
;
ACServerManager
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPosition
,
targetSpeed
);
{
if
(
MoveInfo
==
null
)
{
AbsMove
(
targetPosition
,
targetSpeed
);
}
else
{
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAxis
(
Config
,
targetPosition
,
targetSpeed
));
Config
.
TargetPosition
=
targetPosition
;
ACServerManager
.
AbsMove
(
Config
.
DeviceName
,
Config
.
GetAxisValue
(),
targetPosition
,
targetSpeed
);
}
}
/// <summary>
...
...
@@ -143,12 +150,13 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil
.
error
(
axis
.
DisplayStr
+
"目标位置["
+
targetPosition
+
"]当前位置["
+
outCount
+
"],误差过大,重新开始运动,剩余["
+
MoveInfo
.
CanWhileCount
+
"]次"
);
ACServerManager
.
SuddenStop
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
ACServerManager
.
AbsMove
(
axis
.
DeviceName
,
axis
.
GetAxisValue
(),
targetPosition
,
targetSpeed
);
MoveInfo
.
CanWhileCount
--;
}
else
{
msg
=
" storeMoveStep="
+
MoveInfo
.
MoveStep
+
axis
.
DisplayStr
+
"目标位置["
+
targetPosition
+
"]当前位置["
+
outCount
msg
=
" storeMoveStep="
+
MoveInfo
.
SLog
+
axis
.
DisplayStr
+
"目标位置["
+
targetPosition
+
"]当前位置["
+
outCount
+
"],误差过大,需要报警"
;
LogUtil
.
error
(
msg
,
1034
);
}
...
...
@@ -177,7 +185,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
msg
=
" storeMoveStep="
+
MoveInfo
.
MoveStep
+
axis
.
DisplayStr
+
"收到原点完成信号,当前位置["
+
outCount
+
"],误差过大,需要报警"
;
msg
=
" storeMoveStep="
+
MoveInfo
.
SLog
+
axis
.
DisplayStr
+
"收到原点完成信号,当前位置["
+
outCount
+
"],误差过大,需要报警"
;
LogUtil
.
error
(
msg
);
}
}
...
...
@@ -192,7 +200,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 绝对运动至点,不等待结果
/// </summary>
p
ublic
void
AbsMove
(
int
targetPos
,
double
targetSpeed
)
p
rivate
void
AbsMove
(
int
targetPos
,
double
targetSpeed
)
{
if
(
targetPos
.
Equals
(-
1
))
{
...
...
source/DeviceLibrary/model/InOutParam.cs
查看文件 @
3d8c9bd
...
...
@@ -43,24 +43,24 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 物品二维码信息
/// </summary>
public
string
WareCode
{
get
;
set
;
}
public
string
WareCode
=
""
;
/// <summary>
/// 位置坐标名(对应配置表的位置)
/// </summary>
public
string
PosId
{
get
;
set
;
}
public
string
PosId
=
""
;
/// <summary>
/// 托盘号
/// </summary>
public
int
TrayNumber
{
get
;
set
;
}
public
int
TrayNumber
=
-
1
;
/// <summary>
/// 料盘高度
/// </summary>
public
int
PlateH
{
get
;
set
;
}
public
int
PlateH
=
0
;
/// <summary>
/// 料盘宽度
/// </summary>
public
int
PlateW
{
get
;
set
;
}
public
int
PlateW
=
0
;
public
string
ToStr
()
{
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
3d8c9bd
...
...
@@ -384,7 +384,10 @@ namespace OnlineStore.DeviceLibrary
/// 等待当前的出入库结束
/// </summary>
MO_200_WaitInoutParam
=
3200
,
/// <summary>
/// 等待紧急出料结束
/// </summary>
MO_201_WaitOutEnd
=
3201
,
#
endregion
...
...
@@ -706,8 +709,10 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
入料装置出料处理,
12000
开始
/// <summary>
/// 出库流程:提升伺服到P2
/// </summary>
FO_00_BatchAxisToP2
=
12000
,
/// <summary>
/// 出料流程:升降盘定位气缸后退
/// </summary>
...
...
source/DeviceLibrary/model/TrayInfo.cs
查看文件 @
3d8c9bd
...
...
@@ -49,32 +49,32 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 夹具编码值(1-32?)
/// </summary>
public
int
TrayCode
{
get
;
set
;
}
public
int
TrayCode
=
-
1
;
/// <summary>
/// 是否有料盘,true=有料盘
/// </summary>
public
bool
IsFull
{
get
;
set
;
}
public
bool
IsFull
=
false
;
/// <summary>
/// 出库还是入库(有料盘时才有此操作)0=无操作,1=入库,2=出库
/// </summary>
public
int
InOrOutStore
{
get
;
set
;
}
public
int
InOrOutStore
=
0
;
/// <summary>
/// 物品二维码信息
/// </summary>
public
string
WareCode
{
get
;
set
;
}
public
string
WareCode
=
""
;
/// <summary>
/// 位置名(对应配置表的位置)
/// </summary>
public
string
PosId
{
get
;
set
;
}
public
string
PosId
=
""
;
/// <summary>
/// 料盘高度
/// </summary>
public
int
PlateH
{
get
;
set
;
}
public
int
PlateH
=
0
;
/// <summary>
/// 料盘宽度
/// </summary>
public
int
PlateW
{
get
;
set
;
}
public
int
PlateW
=
0
;
/// <summary>
/// 入库失败料盘,未扫到码或获取库位号失败
/// </summary>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论