Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO664-HCSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ad39440e
由
LN
编写于
2020-11-11 15:47:35 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加IsUse_Tray_Check功能
1 个父辈
184abef7
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
131 行增加
和
107 行删除
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
source/DeviceLibrary/acSingleStore/BoxBean_Partial.cs
source/DeviceLibrary/acSingleStore/StoreBean.cs
source/DeviceLibrary/bean/StoreStep.cs
source/HCSingleStore/App.config
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
查看文件 @
ad39440
...
...
@@ -31,8 +31,8 @@ PRO,0,压紧轴(轴4)P3速度,CompAxis_P3_Speed,20000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,,,,,,
PRO,0,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,
0
,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,
1
,,,,,,,,,,,,
PRO,0,是否调试状态,ISDebug,0,,,,,,,,,,,,
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,,
PRO,,温湿度端口号,Humiture_Port,COM5,,,
\ No newline at end of file
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,,,,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,, ,,,,,,,,,
PRO,,温湿度端口号,Humiture_Port,COM5,,,,,,,,,,,,
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
查看文件 @
ad39440
...
...
@@ -31,7 +31,7 @@ PRO,0,压紧轴(轴4)P3速度,CompAxis_P3_Speed,20000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,,,,,,
PRO,0,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,,,,,,
PRO,0,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,
0
,,,,,,,,,,,,
PRO,0,是否使用料盘检测信号,IsUse_Tray_Check,
1
,,,,,,,,,,,,
PRO,0,是否调试状态,ISDebug,0,,,,,,,,,,,,
PRO,,每次吹气的时间(分钟),BlowAir_Time,10,,,
PRO,,两次吹气间隔(分钟),BlowAir_Interval,10,,,
...
...
source/DeviceLibrary/acSingleStore/BoxBean_Partial.cs
查看文件 @
ad39440
...
...
@@ -295,15 +295,15 @@ namespace OnlineStore.DeviceLibrary
{
if
(!
LoadParamPosition
(
param
))
{
LogUtil
.
error
(
Name
+
" 启动入库【"
+
posId
+
"】出错,找不到库位信息"
);
LogUtil
.
error
(
Name
+
" 启动入库【"
+
posId
+
"】出错,找不到库位信息"
);
return
;
}
if
(
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
HIGH
))
{
LogUtil
.
error
(
Name
+
" 启动入库【"
+
posId
+
"】出错,叉子料盘检测有料"
);
LogUtil
.
error
(
Name
+
" 启动入库【"
+
posId
+
"】出错,叉子料盘检测有料"
);
return
;
}
LogUtil
.
info
(
Name
+
" 启动入库【"
+
posId
+
"】"
);
LogUtil
.
info
(
Name
+
" 启动入库【"
+
posId
+
"】"
);
storeRunStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
InStoreExecute
;
MoveInfo
.
NewMove
(
StoreMoveType
.
InStore
,
param
);
...
...
@@ -323,21 +323,19 @@ namespace OnlineStore.DeviceLibrary
{
doorCheckWatch
.
Stop
();
}
SI_02_Move
(
param
.
MoveP
);
}
else
{
LogUtil
.
error
(
Name
+
" 启动【"
+
posId
+
"】入库出错,当前状态,storeStatus="
+
storeRunStatus
);
LogUtil
.
error
(
Name
+
" 启动【"
+
posId
+
"】入库出错,当前状态,storeStatus="
+
storeRunStatus
);
}
}
private
void
SI_02_Move
(
LineMoveP
moveP
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutToP1
);
InStoreLog
(
"入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
OpenDoor
();
InOutBackToP1
(
moveP
.
InOut_P1
);
}
...
...
@@ -347,7 +345,7 @@ namespace OnlineStore.DeviceLibrary
if
(!
AxisManager
.
instance
.
isInPosition
(
updown
.
DeviceName
,
updown
.
GetAxisValue
(),
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P1
,
updown
.
CanErrorCountMax
,
true
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
ReturnHome
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
AxisToP1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
InStoreLog
(
"入库:SI_03已结束,发现升降轴不在待机点,重新运动 升降轴到P1 ["
+
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P1
+
"] "
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
...
...
@@ -356,7 +354,7 @@ namespace OnlineStore.DeviceLibrary
ConfigMoveAxis
middle
=
Config
.
Middle_Axis
;
if
(!
AxisManager
.
instance
.
isInPosition
(
middle
.
DeviceName
,
middle
.
GetAxisValue
(),
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P1
,
middle
.
CanErrorCountMax
,
true
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
ReturnHome
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
AxisToP1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
InStoreLog
(
"入库:SI_03已结束,发现旋转轴不在待机点,重新运动 旋转轴到P1 ["
+
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P1
+
"]"
);
ACAxisMove
(
Config
.
Middle_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
...
...
@@ -365,15 +363,15 @@ namespace OnlineStore.DeviceLibrary
if
(
DoorIsOpen
())
{
//判断仓门是否打开
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_InoutToP2
);
InStoreLog
(
"入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_DeviceToDoor
);
ACAxisMove
(
Config
.
InOut_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
//NeedCheckSafetyLight = 1;
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_ComToP3
);
InStoreLog
(
"入库:SI_04 叉子即将取料,发现门未上升到位,重新打开门 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_CompressWare
);
OpenDoor
();
}
}
...
...
@@ -402,7 +400,7 @@ namespace OnlineStore.DeviceLibrary
Alarm
(
StoreAlarmType
.
IoSingleTimeOut
,
""
,
WarnMsg
,
MoveInfo
.
MoveType
);
}
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_02_InOut
AxisHome
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_02_InOut
ToP1
)
{
if
(
IOValue
(
IO_Type
.
TrayCheck_Door
).
Equals
(
IO_VALUE
.
LOW
))
{
...
...
@@ -410,7 +408,7 @@ namespace OnlineStore.DeviceLibrary
CodeMsg
=
"入库["
+
posId
+
"]叉子去取料前,未检测到进料口有料"
;
LogUtil
.
error
(
CodeMsg
);
}
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
ReturnHome
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_
AxisToP1
);
InStoreLog
(
"入库:SI_03 所有轴回到待机点,升降轴到P1 ["
+
moveP
.
UpDown_P1
+
"],旋转轴到P1 ["
+
moveP
.
Middle_P1
+
"],,压紧轴到P3 ["
+
moveP
.
ComPress_P3
+
"],打开仓门"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
...
...
@@ -435,30 +433,30 @@ namespace OnlineStore.DeviceLibrary
}
OpenDoor
();
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_03_
ReturnHome
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_03_
AxisToP1
)
{
SI_05_DeviceToDoor
();
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_04_Com
pressWare
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_04_Com
ToP3
)
{
SI_05_DeviceToDoor
();
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_05_
DeviceToDoor
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_05_
InoutToP2
)
{
//NeedCheckSafetyLight = 0;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_06_GetReel
);
InStoreLog
(
"入库:SI_06 拿物品,压紧轴至P2(压紧点))["
+
moveP
.
ComPress_P2
+
"] 升降轴至P7(进料口取料缓冲点) ["
+
moveP
.
UpDown_P7
+
"]"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_06_DoorWarToDevice
);
ComMoveToPosition
(
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P7
,
Config
.
UpDownAxis_P7_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_06_
DoorWarToDevice
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_06_
GetReel
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_07_InoutBack
);
InStoreLog
(
"入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点)["
+
moveP
.
InOut_P1
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_07_DeviceBackFromDoor
);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_07_
DeviceBackFromDoor
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_07_
InoutBack
)
{
if
(
IOValue
(
IO_Type
.
TrayCheck_Fixture
).
Equals
(
IO_VALUE
.
LOW
))
{
...
...
@@ -467,42 +465,40 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
CodeMsg
);
}
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"], 升降轴至P3(库位入库前点)["
+
moveP
.
UpDown_P3
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
CloseDoor
(
false
);
if
(
Config
.
IsUse_Tray_Check
.
Equals
(
1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_08_TrayCheck
);
InStoreLog
(
"入库:SI_08 等待检测到叉子料盘信号 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_Fixture
,
IO_VALUE
.
HIGH
));
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"], 升降轴至P3(库位入库前点)["
+
moveP
.
UpDown_P3
+
"] "
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
CloseDoor
(
false
);
}
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_08_
LocationCylinder_Up
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_08_
TrayCheck
)
{
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"],升降轴至P3(库位入库前点))["
+
moveP
.
UpDown_P3
+
"],关闭舱门 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P1_Speed
);
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"], 升降轴至P3(库位入库前点)["
+
moveP
.
UpDown_P3
+
"] "
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
//关闭舱门
//IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
//IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
CloseDoor
(
false
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_09_MoveToBag
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_11_InoutToP3
);
InStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ["
+
moveP
.
InOut_P3
+
"]"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_10_LocationCylinder_Down
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_11_InoutToP3
)
{
//IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
InStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ["
+
moveP
.
InOut_P3
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_11_DeviceToBag
)
{
InStoreLog
(
"入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点)["
+
moveP
.
UpDown_P4
+
"] ,压紧轴至P3(压紧前点) ["
+
moveP
.
ComPress_P3
+
"]"
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
:
""
;
lastPosId
=
posId
;
...
...
@@ -511,21 +507,22 @@ namespace OnlineStore.DeviceLibrary
//手动发给服务器状态,防止没有手动
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_12_PutWareToBag
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_12_PutReel
);
InStoreLog
(
"入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点)["
+
moveP
.
UpDown_P4
+
"] ,压紧轴至P3(压紧前点) ["
+
moveP
.
ComPress_P3
+
"]"
);
ComMoveToPosition
(
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_12_Put
WareToBag
)
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_12_Put
Reel
)
{
InStoreLog
(
"入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点)["
+
moveP
.
InOut_P1
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_13_InoutBack
);
InStoreLog
(
"入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点)["
+
moveP
.
InOut_P1
+
"] "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_13_InoutBack
)
{
InStoreLog
(
"入库:SI_14_GoBack 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_14_GoBack
);
InStoreLog
(
"入库:SI_14_GoBack 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭"
);
ComMoveToPosition
(
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
...
...
@@ -533,8 +530,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_15_WaitNoReel
)
{
InStoreLog
(
"入库:SI_15_WaitNoReel 等待料叉无信号 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_15_WaitNoReel
);
InStoreLog
(
"入库:SI_15_WaitNoReel 等待料叉无信号 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_Fixture
,
IO_VALUE
.
LOW
));
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_14_GoBack
)
...
...
@@ -607,11 +604,11 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_02_InoutBack
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_ToBagP
);
OutStoreLog
(
"出库:压紧轴至P3(压紧前点)["
+
moveP
.
ComPress_P3
+
"] ,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"], 升降轴至P5(库位出库前点)["
+
moveP
.
UpDown_P5
+
"]"
);
OutStoreLog
(
"出库:压紧轴至P3(压紧前点)["
+
moveP
.
ComPress_P3
+
"] ,旋转轴至P2(库位点)["
+
moveP
.
Middle_P2
+
"], 升降轴至P5(库位出库前点)["
+
moveP
.
UpDown_P5
+
"]"
);
ComMoveToPosition
(
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
...
...
@@ -624,8 +621,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_04_InoutToP3
)
{
OutStoreLog
(
"出库:升降轴至P6(库位出料缓冲点)["
+
moveP
.
ComPress_P2
+
"],压紧轴至P2(压紧点)["
+
moveP
.
UpDown_P6
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_05_GetWare
);
OutStoreLog
(
"出库:升降轴至P6(库位出料缓冲点)["
+
moveP
.
ComPress_P2
+
"],压紧轴至P2(压紧点)["
+
moveP
.
UpDown_P6
+
"] "
);
ComMoveToPosition
(
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P6
,
Config
.
UpDownAxis_P6_Speed
);
...
...
@@ -633,7 +630,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_05_GetWare
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_06_InoutToP1
);
OutStoreLog
(
"出库:进出轴至P1(待机点) ["
+
moveP
.
InOut_P1
+
"]"
);
OutStoreLog
(
"出库:进出轴至P1(待机点) ["
+
moveP
.
InOut_P1
+
"]"
);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1
(
moveP
.
InOut_P1
);
//把库位的物品放到取到叉子上之后是出仓完成
...
...
@@ -651,10 +648,35 @@ namespace OnlineStore.DeviceLibrary
CodeMsg
=
"出库["
+
posId
+
"]叉子从库位退出后,未检测到料叉有料"
;
LogUtil
.
error
(
CodeMsg
);
}
if
(
Config
.
IsUse_Tray_Check
.
Equals
(
1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_07_TrayCheck
);
OutStoreLog
(
"出库:SO_07 等待叉子料盘检测信号"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_Fixture
,
IO_VALUE
.
HIGH
));
}
else
{
if
(
MoveInfo
.
MoveParam
.
LoadLocationP
())
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_11_MoveToBag
);
OutStoreLog
(
"出库定位:旋转轴 至P2( 库位点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
MiddleAxis_Position_P2
+
"], 升降轴到P3(库位入库前点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_IHPosition_P3
+
"] "
);
ACAxisMove
(
Config
.
Middle_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
MiddleAxis_Position_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_IHPosition_P3
,
Config
.
UpDownAxis_P3_Speed
);
}
else
{
SO_21_ToDoorP
();
}
}
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_07_TrayCheck
)
{
if
(
MoveInfo
.
MoveParam
.
LoadLocationP
())
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_11_MoveToBag
);
OutStoreLog
(
"出库定位:旋转轴 至P2( 库位点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
MiddleAxis_Position_P2
+
"], 升降轴到P3(库位入库前点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_IHPosition_P3
+
"] "
);
OutStoreLog
(
"出库定位:旋转轴 至P2( 库位点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
MiddleAxis_Position_P2
+
"], 升降轴到P3(库位入库前点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_IHPosition_P3
+
"] "
);
ACAxisMove
(
Config
.
Middle_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
MiddleAxis_Position_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_IHPosition_P3
,
Config
.
UpDownAxis_P3_Speed
);
...
...
@@ -675,13 +697,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_12_InoutToP3
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_13_ComToP3
);
OutStoreLog
(
"出库定位:压紧轴到P3( 压紧前点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
+
"] "
);
OutStoreLog
(
"出库定位:压紧轴到P3( 压紧前点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
+
"] "
);
ACAxisMove
(
Config
.
Comp_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
,
Config
.
CompAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_13_ComToP3
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_14_UpdownToP4
);
OutStoreLog
(
"出库定位:放下物品,升降轴到P4( 库位入料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
+
"] "
);
OutStoreLog
(
"出库定位:放下物品,升降轴到P4( 库位入料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
+
"] "
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
,
Config
.
UpDownAxis_P4_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_14_UpdownToP4
)
...
...
@@ -693,14 +715,14 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_15_WaitTime
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_16_GetWare
);
OutStoreLog
(
"出库定位:拿物品,升降轴到P6( 库位出料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
+
"],压紧轴到P2(压紧点) ["
+
moveP
.
ComPress_P2
+
"]"
);
OutStoreLog
(
"出库定位:拿物品,升降轴到P6( 库位出料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
+
"],压紧轴到P2(压紧点) ["
+
moveP
.
ComPress_P2
+
"]"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
,
Config
.
UpDownAxis_P6_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_16_GetWare
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_17_UpdownToP42
);
OutStoreLog
(
"出库定位2:放下物品,压紧轴到P3["
+
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
+
"],升降轴到P4( 库位入料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
+
"] "
);
OutStoreLog
(
"出库定位2:放下物品,压紧轴到P3["
+
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
+
"],升降轴到P4( 库位入料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
+
"] "
);
//压紧轴放松,压紧轴到压紧前点P3
ACAxisMove
(
Config
.
Comp_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
CompressAxis_CPosition_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_ILPosition_P4
,
Config
.
UpDownAxis_P4_Speed
);
...
...
@@ -714,14 +736,14 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_18_WaitTime2
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_19_GetWare2
);
OutStoreLog
(
"出库定位2:拿物品,升降轴到P6( 库位出料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
+
"],压紧轴到P2(压紧点) ["
+
moveP
.
ComPress_P2
+
"]"
);
OutStoreLog
(
"出库定位2:拿物品,升降轴到P6( 库位出料缓冲点)["
+
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
+
"],压紧轴到P2(压紧点) ["
+
moveP
.
ComPress_P2
+
"]"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
LocationPos
.
UpDownAxis_OHPosition_P6
,
Config
.
UpDownAxis_P6_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_19_GetWare2
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SOL_20_InoutToP1
);
OutStoreLog
(
"出库定位: 进出轴到P1( 待机点)["
+
Config
.
InOutAxis_P1_Position
+
"] "
);
OutStoreLog
(
"出库定位: 进出轴到P1( 待机点)["
+
Config
.
InOutAxis_P1_Position
+
"] "
);
ACAxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SOL_20_InoutToP1
)
...
...
@@ -743,23 +765,23 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_23_InoutToP2
)
{
OutStoreLog
(
"出库:压紧轴到P1["
+
moveP
.
ComPress_P1
+
"],升降轴至P8(进料口出料缓冲点)["
+
moveP
.
UpDown_P8
+
"] "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_24_PutWare
);
OutStoreLog
(
"出库:压紧轴到P1["
+
moveP
.
ComPress_P1
+
"],升降轴至P8(进料口出料缓冲点)["
+
moveP
.
UpDown_P8
+
"] "
);
//NeedCheckSafetyLight = 0;
ComMoveToPosition
(
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P8
,
Config
.
UpDownAxis_P8_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_24_PutWare
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_25_InoutToP1
);
OutStoreLog
(
"出库:进出轴动作至P1(待机点) ["
+
moveP
.
InOut_P1
+
"]"
);
OutStoreLog
(
"出库:进出轴动作至P1(待机点) ["
+
moveP
.
InOut_P1
+
"]"
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_25_InoutToP1
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_26_CloseDoor
);
OutStoreLog
(
"出库:轴2至P1(待机点)["
+
moveP
.
UpDown_P1
+
"] ,关闭舱门"
);
OutStoreLog
(
"出库:轴2至P1(待机点)["
+
moveP
.
UpDown_P1
+
"] ,关闭舱门"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
CloseDoor
();
...
...
@@ -893,8 +915,8 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InStoreLog
(
"出库:SO_09 叉子即将取料,发现门未上升到位,重新打开门 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_22_WaitNoTray
);
InStoreLog
(
"出库:SO_09 叉子即将取料,发现门未上升到位,重新打开门 "
);
OpenDoor
();
}
...
...
source/DeviceLibrary/acSingleStore/StoreBean.cs
查看文件 @
ad39440
...
...
@@ -69,6 +69,7 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
mainTimer
.
Enabled
=
true
;
ledProcessTimer
.
Enabled
=
true
;
canStart
=
true
;
});
}
...
...
@@ -165,7 +166,7 @@ namespace OnlineStore.DeviceLibrary
public
override
void
StopRun
()
{
mainTimer
.
Enabled
=
false
;
ledProcessTimer
.
Enabled
=
false
;
//
ledProcessTimer.Enabled = false;
//停止运行时,把阻挡气缸上升
StopMove
();
foreach
(
BoxBean
equip
in
BoxMap
.
Values
)
...
...
@@ -198,36 +199,40 @@ namespace OnlineStore.DeviceLibrary
bool
isNeedAlarmLed
=
false
;
//bool isTemp30M = false;
bool
isInOut
=
false
;
bool
isReset
=
false
;
//StoreRunStatus runs = StoreRunStatus.Wait;
bool
isReset
=
false
;
foreach
(
BoxBean
box
in
BoxMap
.
Values
)
{
if
(!
box
.
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
isNeedAlarmLed
=
true
;
}
if
(
box
.
humBean
.
TempOrHumidityIsAlarm
)
if
(
box
.
storeRunStatus
>
StoreRunStatus
.
Wait
)
{
TimeSpan
span
=
DateTime
.
Now
-
box
.
humBean
.
TempAlarmTime
;
if
(
span
.
Minutes
>
30
)
if
(!
box
.
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
//isTemp30M = true;
isNeedAlarmLed
=
true
;
}
}
if
(
box
.
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
box
.
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
isInOut
=
true
;
}
if
(
box
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
box
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
{
isReset
=
true
;
if
(
box
.
humBean
.
TempOrHumidityIsAlarm
)
{
TimeSpan
span
=
DateTime
.
Now
-
box
.
humBean
.
TempAlarmTime
;
if
(
span
.
Minutes
>
30
)
{
//isTemp30M = true;
isNeedAlarmLed
=
true
;
}
}
if
(
box
.
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
box
.
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
isInOut
=
true
;
}
if
(
box
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
box
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
{
isReset
=
true
;
}
}
}
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
).
Equals
(
false
)
||
isNoAirCheck
||
isInSuddenDown
)
if
(
storeRunStatus
>
StoreRunStatus
.
Wait
)
{
isNeedAlarmLed
=
true
;
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
).
Equals
(
false
)
||
isNoAirCheck
||
isInSuddenDown
)
{
isNeedAlarmLed
=
true
;
}
}
//黄灯
...
...
source/DeviceLibrary/bean/StoreStep.cs
查看文件 @
ad39440
...
...
@@ -207,6 +207,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
SO_06_InoutToP1
,
SO_07_TrayCheck
,
#
region
定位处理:先将料放入定位区,再拿起料到仓门口
...
...
@@ -257,7 +258,6 @@ namespace OnlineStore.DeviceLibrary
#
endregion
/// <summary>
/// 料仓出库,,所有设备运行到门,,旋转轴到P1( 待机点)升降轴到P2( 进料口出料前点)
/// </summary>
...
...
@@ -309,48 +309,45 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// </summary>
SI_02_InOut
AxisHome
=
202
,
SI_02_InOut
ToP1
=
202
,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// </summary>
SI_03_
ReturnHome
=
203
,
SI_03_
AxisToP1
=
203
,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),压紧轴到P3(压紧前点)
/// </summary>
SI_04_Com
pressWare
=
204
,
SI_04_Com
ToP3
=
204
,
/// <summary>
/// 入库。。叉子进入入料口,进出轴到P2( 进料口取料点)
/// </summary>
SI_05_
DeviceToDoor
=
205
,
SI_05_
InoutToP2
=
205
,
/// <summary>
/// 入库。。把物品放入叉子上,升降轴到P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),压紧轴到P2(压紧点)
/// </summary>
SI_06_
DoorWarToDevice
=
206
,
SI_06_
GetReel
=
206
,
/// <summary>
/// 入库。。叉子 从入料口抽出,进出轴到P1( 待机点)
/// </summary>
SI_07_
DeviceBackFromDoor
=
207
,
SI_07_
InoutBack
=
207
,
/// <summary>
/// 入库。。,
定位气缸伸出 (有压紧轴的不需要此步骤)
/// 入库。。,
等待检测到料盘
/// </summary>
SI_08_
LocationCylinder_Up
=
208
,
SI_08_
TrayCheck
=
208
,
/// <summary>
/// 入库。。移动到库位点,旋转轴到P2( 库位点)升降轴到P3(库位入库前点)
/// </summary>
SI_09_MoveToBag
=
209
,
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// </summary>
SI_10_LocationCylinder_Down
=
210
,
/// <summary>
/// 入库。。叉子进入库位中,进出轴到P3(库位取放料点)
/// </summary>
SI_11_
DeviceToBag
=
211
,
SI_11_
InoutToP3
=
211
,
/// <summary>
/// 入库。。放下物品,升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点)
/// </summary>
SI_12_Put
WareToBag
=
212
,
SI_12_Put
Reel
=
212
,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
...
...
source/HCSingleStore/App.config
查看文件 @
ad39440
...
...
@@ -25,7 +25,7 @@
<
add
key
=
"Store_ID"
value
=
"7"
/>
<!--
end
one
store
config
-->
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<
add
key
=
"InOutDefaultPosition"
value
=
"
8
000"
/>
<
add
key
=
"InOutDefaultPosition"
value
=
"
5
000"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<!--出库等待料盘拿走的时间,秒-->
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论