Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-ACPackingStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 1cbba93f
由
LN
编写于
2019-11-08 17:23:13 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
修改配置
1 个父辈
11e2c782
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
431 行增加
和
207 行删除
source/ACPackingStore/FrmBox.cs
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean.cs
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean_Partial.cs
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean_Shelf.cs
source/DeviceLibrary/ACPackingStore/StoreManager.cs
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
source/DeviceLibrary/store/InOutParam.cs
source/DeviceLibrary/store/StoreStep.cs
source/DeviceLibrary/store/model/StoreMoveInfo.cs
source/LoadCVSLibrary/storeConfig/config/AC_Box_Config.cs
source/LoadCVSLibrary/storeConfig/config/Store_Config.cs
source/ACPackingStore/FrmBox.cs
查看文件 @
1cbba93
...
...
@@ -80,7 +80,7 @@ namespace OnlineStore.ACPackingStore
txtMiddleP1
.
Text
=
BoxBean
.
Config
.
MiddleAxis_P1_Position
.
ToString
();
txtUpDownP1
.
Text
=
BoxBean
.
Config
.
UpDownAxis_DoorOPosition_P1
.
ToString
();
txtInOutP1
.
Text
=
BoxBean
.
Config
.
InOutAxis_P1_Position
.
ToString
();
txtComP1
.
Text
=
BoxBean
.
Config
.
Comp
ress
Axis_P1_Position
.
ToString
();
txtComP1
.
Text
=
BoxBean
.
Config
.
CompAxis_P1_Position
.
ToString
();
txtUpDownP2
.
Text
=
BoxBean
.
Config
.
UpDownAxis_DoorIPosition_P2
.
ToString
();
txtUpDownP7
.
Text
=
BoxBean
.
Config
.
UpDownAxis_DoorOBPosition_P7
.
ToString
();
...
...
@@ -613,9 +613,9 @@ namespace OnlineStore.ACPackingStore
needUpdate
=
true
;
}
if
(
BoxBean
.
Config
.
Comp
ress
Axis_P1_Position
!=
FormUtil
.
GetIntValue
(
txtComP1
))
if
(
BoxBean
.
Config
.
CompAxis_P1_Position
!=
FormUtil
.
GetIntValue
(
txtComP1
))
{
BoxBean
.
Config
.
Comp
ress
Axis_P1_Position
=
FormUtil
.
GetIntValue
(
txtComP1
);
BoxBean
.
Config
.
CompAxis_P1_Position
=
FormUtil
.
GetIntValue
(
txtComP1
);
needUpdate
=
true
;
}
if
(
BoxBean
.
Config
.
UpDownAxis_DoorIPosition_P2
!=
FormUtil
.
GetIntValue
(
txtUpDownP2
))
...
...
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean.cs
查看文件 @
1cbba93
...
...
@@ -296,7 +296,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
MoveInfo
.
MoveType
+
": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!"
);
ACAxisMove
(
Config
.
Middle_Axis
,
Config
.
MiddleAxis_P1_Position
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
Config
.
UpDownAxis_DoorOPosition_P1
,
Config
.
UpDownAxis_P1_Speed
);
ComMoveToPosition
(
Config
.
Comp
ress
Axis_P1_Position
,
Config
.
CompAxis_P1_Speed
);
ComMoveToPosition
(
Config
.
CompAxis_P1_Position
,
Config
.
CompAxis_P1_Speed
);
break
;
case
StoreMoveStep
.
BOX_H_MiddleAxisToP1
:
...
...
@@ -322,7 +322,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
MoveInfo
.
MoveType
+
": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!"
);
ACAxisMove
(
Config
.
Middle_Axis
,
Config
.
MiddleAxis_P1_Position
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
Config
.
UpDownAxis_DoorOPosition_P1
,
Config
.
UpDownAxis_P1_Speed
);
ComMoveToPosition
(
Config
.
Comp
ress
Axis_P1_Position
,
Config
.
CompAxis_P1_Speed
);
ComMoveToPosition
(
Config
.
CompAxis_P1_Position
,
Config
.
CompAxis_P1_Speed
);
break
;
case
StoreMoveStep
.
BOX_M_H_TOP1_OtherAxisToP1
:
LogInfo
(
"到待机状态完成"
);
...
...
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean_Partial.cs
查看文件 @
1cbba93
...
...
@@ -182,15 +182,15 @@ namespace OnlineStore.DeviceLibrary
}
private
void
SI_02_Move
(
LineMoveP
moveP
)
{
InStoreLog
(
"入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_02_InOutAxisHome
);
InOutStoreLog
(
"入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门"
);
OpenDoor
();
InOutBackToP1
(
moveP
.
InOut_P1
);
}
private
void
SI_05_DeviceToDoor
()
{
InStoreLog
(
"入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_05_DeviceToDoor
);
InOutStoreLog
(
"入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) "
);
ACAxisMove
(
Config
.
InOut_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
//NeedCheckSafetyLight = 1;
}
...
...
@@ -215,16 +215,16 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_02_InOutAxisHome
)
{
InStoreLog
(
"入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1,,轴4动作至P3"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_03_ReturnHome
);
InOutStoreLog
(
"入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1,,轴4动作至P3"
);
ComMoveToPosition
(
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_03_ReturnHome
)
{
InStoreLog
(
"入库:SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点) 开始"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_04_CompressWare
);
InOutStoreLog
(
"入库:SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点) 开始"
);
ComMoveToPosition
(
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_04_CompressWare
)
...
...
@@ -234,49 +234,47 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_05_DeviceToDoor
)
{
//NeedCheckSafetyLight = 0;
InStoreLog
(
"入库:SI_06 拿物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_06_DoorWarToDevice
);
InOutStoreLog
(
"入库:SI_06 拿物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点) "
);
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
)
{
InStoreLog
(
"入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_07_DeviceBackFromDoor
);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed
);
InOutStoreLog
(
"入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_07_DeviceBackFromDoor
)
{
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
InOutStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至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
)
{
InStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_09_MoveToBag
);
InOutStoreLog
(
"入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 "
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P2
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P3
,
Config
.
UpDownAxis_P3_Speed
);
CloseDoor
(
false
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_09_MoveToBag
)
{
InStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
InOutStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) "
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_10_LocationCylinder_Down
)
{
InStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_11_DeviceToBag
);
InOutStoreLog
(
"入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) "
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_11_DeviceToBag
)
{
InStoreLog
(
"入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至P3(压紧前点) "
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
lastPosId
=
posId
;
...
...
@@ -286,20 +284,21 @@ namespace OnlineStore.DeviceLibrary
//SendLineStatus(StoreID, posId, StoreStatus.InStoreEnd);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_12_PutWareToBag
);
InOutStoreLog
(
"入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至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_PutWareToBag
)
{
InStoreLog
(
"入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_13_DeviceBackFromBag
);
InOutStoreLog
(
"入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SI_13_DeviceBackFromBag
)
{
InStoreLog
(
"入库:SI_14 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭"
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_14_GoBack
);
InOutStoreLog
(
"入库:SI_14 返回待机点,轴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
);
...
...
@@ -353,7 +352,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NewMove
(
StoreMoveType
.
OutStore
,
param
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_02_DeviceBack
);
OutStoreLog
(
"出库:SO_02 叉子先运动到P1 ,打开舱门 开始"
);
In
OutStoreLog
(
"出库:SO_02 叉子先运动到P1 ,打开舱门 开始"
);
//ACAxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1
(
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P1
);
...
...
@@ -379,13 +378,13 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_01_LocationCylinderDown
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_02_DeviceBack
);
OutStoreLog
(
"出库:SO_02 叉子先运动到P1 "
);
In
OutStoreLog
(
"出库:SO_02 叉子先运动到P1 "
);
InOutBackToP1
(
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_02_DeviceBack
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_03_ToBagPosition
);
OutStoreLog
(
"出库:SO_03 走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点)"
);
In
OutStoreLog
(
"出库:SO_03 走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点)"
);
ComMoveToPosition
(
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P2
,
Config
.
MiddleAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_P5
,
Config
.
UpDownAxis_P5_Speed
);
...
...
@@ -393,13 +392,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_03_ToBagPosition
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_04_DeviceToBag
);
OutStoreLog
(
"出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) "
);
In
OutStoreLog
(
"出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) "
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_04_DeviceToBag
)
{
OutStoreLog
(
"出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_05_BagWareToDevice
);
InOutStoreLog
(
"出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) "
);
ComMoveToPosition
(
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P6
,
Config
.
UpDownAxis_P6_Speed
);
...
...
@@ -407,7 +406,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_05_BagWareToDevice
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_06_BagDeviceBack
);
OutStoreLog
(
"出库:SO_06 叉子从库位返回,进出轴至P1(待机点) "
);
In
OutStoreLog
(
"出库:SO_06 叉子从库位返回,进出轴至P1(待机点) "
);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1
(
moveP
.
InOut_P1
);
//把库位的物品放到取到叉子上之后是出仓完成
...
...
@@ -427,7 +426,7 @@ namespace OnlineStore.DeviceLibrary
}
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_08_ToDoorPosition
);
OutStoreLog
(
"出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),打开舱门 "
);
In
OutStoreLog
(
"出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),打开舱门 "
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
//打开舱门
...
...
@@ -437,7 +436,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_07_LocationCylinder_Up
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_08_ToDoorPosition
);
OutStoreLog
(
"出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) "
);
In
OutStoreLog
(
"出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) "
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
...
...
@@ -456,7 +455,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_09_LocationCylinder_Down
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_091_WaitNoTray
);
OutStoreLog
(
"出库:SO_091 打开仓门,等待门口无料盘 "
);
In
OutStoreLog
(
"出库:SO_091 打开仓门,等待门口无料盘 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_Door
,
IO_VALUE
.
LOW
));
// StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
OpenDoor
();
...
...
@@ -468,8 +467,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_10_DeviceToDoor
)
{
OutStoreLog
(
"出库:SO_11 放下物品,升降轴至P8(进料口出料缓冲点) "
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_11_DevicePutWare
);
InOutStoreLog
(
"出库:SO_11 放下物品,升降轴至P8(进料口出料缓冲点) "
);
//NeedCheckSafetyLight = 0;
ComMoveToPosition
(
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P8
,
Config
.
UpDownAxis_P8_Speed
);
...
...
@@ -477,13 +476,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_11_DevicePutWare
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_12_DeviceOutFromDoor
);
OutStoreLog
(
"出库:SO_12 叉子从出料口返回,,进出轴动作至P1(待机点) "
);
In
OutStoreLog
(
"出库:SO_12 叉子从出料口返回,,进出轴动作至P1(待机点) "
);
InOutBackToP1
(
moveP
.
InOut_P1
);
}
else
if
(
MoveInfo
.
MoveStep
==
StoreMoveStep
.
SO_12_DeviceOutFromDoor
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_13_GoBack
);
OutStoreLog
(
"出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门"
);
In
OutStoreLog
(
"出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
CloseDoor
();
//发送消息给流水线
...
...
@@ -498,7 +497,7 @@ namespace OnlineStore.DeviceLibrary
}
int
ms
=
OutStoreWaitSeconds
*
1000
;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_14_WaitTake
);
OutStoreLog
(
"出库:SO_14_WaitTake 等待拿走物品,最多等待"
+
OutStoreWaitSeconds
+
"秒"
);
In
OutStoreLog
(
"出库:SO_14_WaitTake 等待拿走物品,最多等待"
+
OutStoreWaitSeconds
+
"秒"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
ms
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
TrayCheck_Door
,
IO_VALUE
.
LOW
));
// StoreMove.WaitList.Add(WaitResultInfo.WaitHeight(0));
...
...
@@ -540,7 +539,7 @@ namespace OnlineStore.DeviceLibrary
{
LineMoveP
moveP
=
MoveInfo
.
MoveParam
.
MoveP
;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_10_DeviceToDoor
);
OutStoreLog
(
"出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) "
);
In
OutStoreLog
(
"出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) "
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
//NeedCheckSafetyLight = 1;
}
...
...
@@ -570,15 +569,11 @@ namespace OnlineStore.DeviceLibrary
waitOutStoreList
.
Add
(
code
);
}
}
private
void
InStoreLog
(
string
msg
)
{
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
LogInfo
(
"【"
+
posId
+
"】"
+
msg
);
}
private
void
OutStoreLog
(
string
msg
)
private
void
InOutStoreLog
(
string
msg
)
{
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
LogInfo
(
"【"
+
posId
+
"】"
+
msg
);
}
string
shelfId
=
MoveInfo
.
MoveParam
!=
null
?
"_"
+
MoveInfo
.
MoveParam
.
ShelfPosID
:
"_"
;
LogInfo
(
"["
+
posId
+
shelfId
+
"]"
+
MoveInfo
.
MoveStep
+
":"
+
msg
);
}
}
}
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean_Shelf.cs
查看文件 @
1cbba93
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
...
...
@@ -27,6 +28,7 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus
=
StoreRunStatus
.
Busy
;
storeStatus
=
StoreStatus
.
InStoreExecute
;
MoveInfo
.
NewMove
(
StoreMoveType
.
InStore
,
new
InOutParam
());
MoveInfo
.
ShelfPositionList
=
new
List
<
string
>(
ShelfPosList
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S02_DoorOpen
);
CylinderMove
(
MoveInfo
,
IO_Type
.
EntranceDoor_Close
,
IO_Type
.
EntranceDoor_Open
);
...
...
@@ -35,16 +37,18 @@ namespace OnlineStore.DeviceLibrary
}
private
void
ShelfInStoreProcess
()
{
LineMoveP
moveP
=
MoveInfo
.
MoveParam
.
MoveP
;
#
region
料架移入料仓内部处理
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S01_LineIn_Check
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S02_DoorOpen
);
In
StoreLog
(
"SI_S02_DoorOpen:
料架入库:入料口移门打开"
);
In
OutStoreLog
(
"
料架入库:入料口移门打开"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
EntranceDoor_Close
,
IO_Type
.
EntranceDoor_Open
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S02_DoorOpen
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S03_LineRun
);
In
StoreLog
(
"SI_S03_LineRun:
料架入库:线体正转,等待取料位检测到信号"
);
In
OutStoreLog
(
"
料架入库:线体正转,等待取料位检测到信号"
);
IOMove
(
IO_Type
.
Line_BackRun
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
Line_Run
,
IO_VALUE
.
HIGH
);
...
...
@@ -54,38 +58,176 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S03_LineRun
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S04_LineStop
);
In
StoreLog
(
"SI_S04_LineStop:
料架入库:取料位检测到信号,停止线体正转"
);
In
OutStoreLog
(
"
料架入库:取料位检测到信号,停止线体正转"
);
IOMove
(
IO_Type
.
Line_Run
,
IO_VALUE
.
LOW
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S04_LineStop
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S05_DoorClose
);
In
StoreLog
(
"SI_S05_DoorClose:
料架入库:入料口移门关闭"
);
In
OutStoreLog
(
"
料架入库:入料口移门关闭"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
EntranceDoor_Open
,
IO_Type
.
EntranceDoor_Close
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S05_DoorClose
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S06_LocationUp
);
In
StoreLog
(
"SI_S06_LocationUp:
料架入库:定位装置上升"
);
In
OutStoreLog
(
"
料架入库:定位装置上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
LocationCylinder_Down
,
IO_Type
.
LocationCylinder_Up
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S06_LocationUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S07_TopCylinderUp
);
In
StoreLog
(
"SI_S07_TopCylinderUp:
料架入库:顶升装置上升"
);
In
OutStoreLog
(
"
料架入库:顶升装置上升"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_Down
,
IO_Type
.
TopCylinder_Up
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S07_TopCylinderUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S08_StartGetTray
);
In
StoreLog
(
"SI_S07_TopCylinderUp:料架入库:开始循环从第一个空位逐个取料盘,扫码入库"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_Down
,
IO_Type
.
TopCylinder_Up
);
In
OutStoreLog
(
"料架入库:开始循环从第一个空位逐个取料盘,扫码入库"
);
}
#
endregion
#
region
料架取料盘扫码获取
POSID
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S08_StartGetTray
))
{
if
(
MoveInfo
.
NextShelfPos
())
{
//新的料架库位
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S11_InoutToP1
);
InOutStoreLog
(
"料架取料:叉子后退到待机点P1"
);
ACAxisMove
(
Config
.
InOut_Axis
,
Config
.
InOutAxis_P1_Position
,
Config
.
InOutAxis_P1_Speed
);
}
else
{
//所有料盘已取料完成
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S11_InoutToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S12_MoveToShelf
);
InOutStoreLog
(
"料架取料:升降轴移动到PA1低点,旋转轴移动到PA1点,压紧轴到压紧前点"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_LPA1
,
Config
.
UpDownAxis_PA1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_PA
,
Config
.
MiddleAxis_PA_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
Config
.
CompAxis_P3_Speed
,
Config
.
CompAxis_P3_Speed
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S12_MoveToShelf
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S13_InoutToPA
);
InOutStoreLog
(
"料架取料:叉子前进到PA点"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S13_InoutToPA
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S14_UpdownToPA2
);
InOutStoreLog
(
"料架取料:升降轴上升到PA2点"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S14_UpdownToPA2
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S15_StartCompress
);
InOutStoreLog
(
"料架取料:压紧轴开始缓慢压紧"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S15_StartCompress
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S16_ComAxisDownMove
);
InOutStoreLog
(
"料架取料:检测到料叉压紧确认信号,再次向下压紧指定的值"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S16_ComAxisDownMove
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S17_InoutBack
);
InOutStoreLog
(
"料架取料:记录压紧高度,叉子后退到扫码点"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S17_InoutBack
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S18_ScanCode
);
InOutStoreLog
(
"料架取料:记录宽度,开始扫码"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S18_ScanCode
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S19_GetPosId
);
InOutStoreLog
(
"料架取料:扫码成功,从服务器获取库位号"
);
StartSendTray
();
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S19_GetPosId
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S20_CompressWare
);
InOutStoreLog
(
"料架取料: 获取库位号完成,设置位置参数,开始入库"
);
StartSendTray
();
}
#
endregion
#
region
入库逻辑
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S20_CompressWare
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S21_MoveToBag
);
InOutStoreLog
(
"入库:移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S21_MoveToBag
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S22_DeviceToBag
);
InOutStoreLog
(
"入库:叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S22_DeviceToBag
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S23_PutWareToBag
);
InOutStoreLog
(
"入库:放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S23_PutWareToBag
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S24_DeviceBackFromBag
);
InOutStoreLog
(
"入库:叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S24_DeviceBackFromBag
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S25_GoBack
);
InOutStoreLog
(
"入库:返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S25_GoBack
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S08_StartGetTray
);
InOutStoreLog
(
"料架入库:开始循环从第一个空位逐个取料盘,扫码入库"
);
}
#
endregion
#
region
入库逻辑
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S31_ToNGDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S32_NGDoorUp
);
InOutStoreLog
(
"送出料盘:NG料口升降门上升"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S32_NGDoorUp
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S33_InoutToNGDoor
);
InOutStoreLog
(
"送出料盘:进出轴前进到NG料门口位置"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S33_InoutToNGDoor
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S34_UpdownDown
);
InOutStoreLog
(
"送出料盘:升降轴缓慢下降,放下料盘"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S34_UpdownDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S12_MoveToShelf
);
InOutStoreLog
(
"料架取料:叉子后退到待机点P1"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S34_UpdownDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S35_InoutToP1
);
InOutStoreLog
(
"送出料盘:叉子后退到P1"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S35_InoutToP1
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S36_NGDoorDown
);
InOutStoreLog
(
"送出料盘:关门NG料门,送出料盘结束"
);
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
SI_S36_NGDoorDown
))
{
}
#
endregion
else
{
...
...
@@ -93,6 +235,57 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
StartSendTray
()
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SI_S31_ToNGDoor
);
InOutStoreLog
(
"送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口"
);
}
#
region
压紧轴压紧处理
private
System
.
Timers
.
Timer
axisCheckTimer
=
null
;
private
string
TargetIoType
=
IO_Type
.
Compress_Check
;
private
IO_VALUE
TargetIoValue
=
IO_VALUE
.
HIGH
;
private
bool
ComAxisStartCheck
(
string
targetIo
=
""
,
IO_VALUE
value
=
IO_VALUE
.
HIGH
)
{
if
(
String
.
IsNullOrEmpty
(
targetIo
))
{
targetIo
=
IO_Type
.
Compress_Check
;
}
if
(
axisCheckTimer
==
null
)
{
axisCheckTimer
=
new
System
.
Timers
.
Timer
();
axisCheckTimer
.
AutoReset
=
true
;
axisCheckTimer
.
Interval
+=
30
;
axisCheckTimer
.
Elapsed
+=
CheckTimer_Elapsed
;
axisCheckTimer
.
Enabled
=
false
;
}
TargetIoValue
=
value
;
TargetIoType
=
targetIo
;
axisCheckTimer
.
Start
();
return
true
;
}
private
bool
ComAxisStopCheck
()
{
if
(!(
axisCheckTimer
==
null
))
{
axisCheckTimer
.
Stop
();
}
return
true
;
}
private
bool
IsInProcess
=
false
;
private
void
CheckTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
if
(
IsInProcess
)
{
return
;
}
IsInProcess
=
true
;
if
(
IOValue
(
TargetIoType
).
Equals
(
TargetIoValue
))
{
LogUtil
.
info
(
Name
+
"上料轴,检测到 "
+
TargetIoType
+
"="
+
TargetIoValue
+
",可以停止运动"
);
ACServerManager
.
SuddenStop
(
Config
.
Comp_Axis
.
DeviceName
,
Config
.
Comp_Axis
.
GetAxisValue
());
ComAxisStopCheck
();
}
IsInProcess
=
false
;
}
#
endregion
}
}
source/DeviceLibrary/ACPackingStore/StoreManager.cs
查看文件 @
1cbba93
...
...
@@ -182,7 +182,7 @@ namespace OnlineStore.DeviceLibrary
p
.
UpDown_HPA2
=
sp
.
UpDownAxis_HPA2
;
p
.
Middle_PA
=
sp
.
MiddleAxis_PA
;
p
.
ComPress_P1
=
box
.
Config
.
Comp
ress
Axis_P1_Position
;
p
.
ComPress_P1
=
box
.
Config
.
CompAxis_P1_Position
;
p
.
InOut_P1
=
box
.
Config
.
InOutAxis_P1_Position
;
p
.
Middle_P1
=
box
.
Config
.
MiddleAxis_P1_Position
;
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
查看文件 @
1cbba93
...
...
@@ -48,7 +48,8 @@ PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,415000,,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,403000,,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,268093,,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,1000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompressAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,80,,,,,,,
...
...
@@ -91,6 +92,13 @@ PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,1000,,,,,,,
PRO,压紧轴(轴4)P1速度,CompAxis_P1_Speed,100,,,,,,,
PRO,压紧轴(轴4)P2速度,CompAxis_P2_Speed,100,,,,,,,
PRO,压紧轴(轴4)P3速度,CompAxis_P3_Speed,100,,,,,,,
,,,,,,,,,,
PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,, ,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,,
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
查看文件 @
1cbba93
...
...
@@ -48,7 +48,8 @@ PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,415000,,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,403000,,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,268093,,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,1000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompressAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P1待机原位点,CompAxis_P1_Position,10000,,,,,,,
PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,250,,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,80,,,,,,,
...
...
@@ -91,6 +92,13 @@ PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,1000,,,,,,,
PRO,压紧轴(轴4)P1速度,CompAxis_P1_Speed,100,,,,,,,
PRO,压紧轴(轴4)P2速度,CompAxis_P2_Speed,100,,,,,,,
PRO,压紧轴(轴4)P3速度,CompAxis_P3_Speed,100,,,,,,,
,,,,,,,,,,
PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
,,,,,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,, ,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,,
...
...
source/DeviceLibrary/store/InOutParam.cs
查看文件 @
1cbba93
...
...
@@ -103,73 +103,22 @@ namespace OnlineStore.DeviceLibrary
{
return
" ShelfPosID=["
+
ShelfPosID
+
"],WareCode=【"
+
WareCode
+
"】,PosID=【"
+
PosID
+
"】,PlateW=【"
+
PlateW
+
"】,PlateH=【"
+
PlateH
+
"】"
;
}
}
///// <summary>
// /// 夹具编码信息(保存夹具检测到的IO数值,和对应的料仓位置)
// /// </summary>
//public class FixtureCodeInfo
//{
// public FixtureCodeInfo(string wareNum, string posId)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateH = "";
// this.plateW = "";
// }
// public FixtureCodeInfo(string wareNum, string posId, string platew, string plateh)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateW = platew;
// this.plateH = plateh;
// }
// /// <summary>
// /// 物品二维码
// /// </summary>
// public string WareNum { get; set; }
// /// <summary>
// /// 库位号编码
// /// </summary>
// public string PosId { get; set; }
// /// <summary>
// /// 料盘宽
// /// </summary>
// public string plateW { get; set; }
// /// <summary>
// /// 料盘高
// /// </summary>
// public string plateH { get; set; }
internal
void
UpdateShelfPosId
(
string
pId
)
{
this
.
ShelfPosID
=
pId
;
ShelfPosition
sp
=
CSVPositionReader
<
ShelfPosition
>.
GetPositon
(
ShelfPosID
);
if
(
sp
==
null
)
{
LogUtil
.
error
(
"GetPositon["
+
ShelfPosID
+
"]=null,没有库位不能执行出入库"
);
}
// public string ToStr()
// {
// return " WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】";
// }
// /// <summary>
// /// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
// /// </summary>
// /// <returns></returns>
// public int GetStoreId()
// {
// if (!PosId.Equals(""))
// {
// string[] arr = PosId.Split('#');
// if (arr.Length >= 2)
// {
// try
// {
// return int.Parse(arr[0]);
// }
// catch (Exception ex)
// {
MoveP
.
InOut_PA
=
sp
.
InoutAxis_PA
;
MoveP
.
UpDown_LPA1
=
sp
.
UpDownAxis_LPA1
;
MoveP
.
UpDown_HPA2
=
sp
.
UpDownAxis_HPA2
;
MoveP
.
Middle_PA
=
sp
.
MiddleAxis_PA
;
// }
// }
// }
// return -1;
// }
//}
}
}
}
source/DeviceLibrary/store/StoreStep.cs
查看文件 @
1cbba93
...
...
@@ -247,68 +247,68 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
料仓内部入库步骤
20
1
00
#
region
料仓内部入库步骤
20
5
00
/// <summary>
/// 入库检测
/// </summary>
SI_00_TrayCheck
=
20
1
00
,
SI_00_TrayCheck
=
20
5
00
,
/// <summary>
/// 入库,。定位气缸下降
/// </summary>
SI_01_LocationCylinderDown
=
20
1
01
,
SI_01_LocationCylinderDown
=
20
5
01
,
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// </summary>
SI_02_InOutAxisHome
=
20
1
02
,
SI_02_InOutAxisHome
=
20
5
02
,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3
/// </summary>
SI_03_ReturnHome
=
20
1
03
,
SI_03_ReturnHome
=
20
5
03
,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
/// </summary>
SI_04_CompressWare
=
20
1
04
,
SI_04_CompressWare
=
20
5
04
,
/// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// </summary>
SI_05_DeviceToDoor
=
20
1
05
,
SI_05_DeviceToDoor
=
20
5
05
,
/// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
/// </summary>
SI_06_DoorWarToDevice
=
20
1
06
,
SI_06_DoorWarToDevice
=
20
5
06
,
/// <summary>
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// </summary>
SI_07_DeviceBackFromDoor
=
20
1
07
,
SI_07_DeviceBackFromDoor
=
20
5
07
,
/// <summary>
/// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
/// </summary>
SI_08_LocationCylinder_Up
=
20
1
08
,
SI_08_LocationCylinder_Up
=
20
5
08
,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary>
SI_09_MoveToBag
=
20
1
09
,
SI_09_MoveToBag
=
20
5
09
,
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// </summary>
SI_10_LocationCylinder_Down
=
20
1
10
,
SI_10_LocationCylinder_Down
=
20
5
10
,
/// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
/// </summary>
SI_11_DeviceToBag
=
20
1
11
,
SI_11_DeviceToBag
=
20
5
11
,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
/// </summary>
SI_12_PutWareToBag
=
20
1
12
,
SI_12_PutWareToBag
=
20
5
12
,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
SI_13_DeviceBackFromBag
=
20
1
13
,
SI_13_DeviceBackFromBag
=
20
5
13
,
/// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// </summary>
SI_14_GoBack
=
20
1
14
,
SI_14_GoBack
=
20
5
14
,
#
endregion
...
...
@@ -349,56 +349,92 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
SI_S08_StartGetTray
=
20008
,
/// <summary>
/// 料架取料:叉子后退到待机点P1
/// </summary>
SI_S11_InoutToP1
=
20111
,
/// <summary>
/// 料架取料:升降轴移动到PA1低点,旋转轴移动到PA1点,压紧轴到压紧前点
/// </summary>
SI_S12_MoveToShelf
=
20112
,
/// <summary>
/// 料架取料:叉子前进到PA点
/// </summary>
SI_S13_InoutToPA
=
20113
,
/// <summary>
/// 料架取料:升降轴上升到PA2点
/// </summary>
SI_S14_UpdownToPA2
=
20114
,
/// <summary>
/// 料架取料:压紧轴开始缓慢压紧
/// </summary>
SI_S15_StartCompress
=
20115
,
/// <summary>
/// 料架取料:检测到料叉压紧确认信号,再次向下压紧指定的值
/// </summary>
SI_S16_ComAxisDownMove
=
20116
,
/// <summary>
/// 料架取料:记录压紧高度,叉子后退到扫码点
/// </summary>
SI_S17_InoutBack
=
20117
,
/// <summary>
/// 料架取料:记录宽度,开始扫码
/// </summary>
SI_S18_ScanCode
=
20118
,
/// <summary>
/// 料架取料:扫码成功,从服务器获取库位号
/// </summary>
SI_S19_GetPosId
=
20119
,
/// <summary>
/// 料架取料: 获取库位号完成,设置位置参数,开始入库
/// </summary>
SI_S20_CompressWare
=
20120
,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary>
SI_S21_MoveToBag
=
20121
,
/// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
/// </summary>
SI_S22_DeviceToBag
=
20122
,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
/// </summary>
SI_S23_PutWareToBag
=
20123
,
/// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary>
SI_S24_DeviceBackFromBag
=
20124
,
/// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// </summary>
SI_S25_GoBack
=
20125
,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S03_CompressWare = 20103,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S04_CompressWare = 20104,
///// <summary>
///// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
///// </summary>
//SI_S05_DeviceToDoor = 20105,
///// <summary>
///// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
///// </summary>
//SI_S06_DoorWarToDevice = 20106,
///// <summary>
///// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
///// </summary>
//SI_S07_DeviceBackFromDoor = 20107,
///// <summary>
///// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S08_LocationCylinder_Up = 20108,
///// <summary>
///// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
///// </summary>
//SI_S09_MoveToBag = 20109,
///// <summary>
///// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S10_LocationCylinder_Down = 20110,
///// <summary>
///// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
///// </summary>
//SI_S11_DeviceToBag = 20111,
///// <summary>
///// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
///// </summary>
//SI_S12_PutWareToBag = 20112,
///// <summary>
///// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
///// </summary>
//SI_S13_DeviceBackFromBag = 20113,
///// <summary>
///// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
///// </summary>
//SI_S14_GoBack = 20114,
/// <summary>
/// 送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口
/// </summary>
SI_S31_ToNGDoor
=
20131
,
/// <summary>
/// 送出料盘:NG料口升降门上升
/// </summary>
SI_S32_NGDoorUp
=
20132
,
/// <summary>
/// 送出料盘:进出轴前进到NG料门口位置
/// </summary>
SI_S33_InoutToNGDoor
=
20133
,
/// <summary>
/// 送出料盘:升降轴缓慢下降,放下料盘
/// </summary>
SI_S34_UpdownDown
=
20134
,
/// <summary>
/// 送出料盘:叉子后退到P1
/// </summary>
SI_S35_InoutToP1
=
20135
,
/// <summary>
/// 送出料盘:关门NG料门,送出料盘结束
/// </summary>
SI_S36_NGDoorDown
=
20136
,
#
endregion
}
...
...
source/DeviceLibrary/store/model/StoreMoveInfo.cs
查看文件 @
1cbba93
...
...
@@ -60,10 +60,7 @@ namespace OnlineStore.DeviceLibrary
/// 是否再当前步骤等待中
/// </summary>
public
bool
IsInWait
{
get
;
set
;
}
/// <summary>
/// 上一个执行步骤
/// </summary>
public
StoreMoveStep
PreMoveStep
{
get
;
set
;
}
/// <summary>
/// 当前执行到的步骤
/// </summary>
...
...
@@ -82,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
public
void
NextMoveStep
(
StoreMoveStep
step
)
{
PreMoveStep
=
moveStep
;
//
PreMoveStep = moveStep;
moveStep
=
step
;
LastSetpTime
=
DateTime
.
Now
;
IsInWait
=
true
;
...
...
@@ -130,13 +127,26 @@ namespace OnlineStore.DeviceLibrary
}
public
List
<
WaitResultInfo
>
WaitList
=
new
List
<
WaitResultInfo
>();
/// <summary>
///
重置之后继续出入库时,退回上一个步骤执行
///
入库时,需要循环料架的料盘取出
/// </summary>
public
void
BackStep
()
public
List
<
string
>
ShelfPositionList
=
new
List
<
string
>();
public
string
currShelfPosId
=
""
;
public
int
currShelfIndex
=
-
1
;
public
bool
NextShelfPos
()
{
moveStep
=
PreMoveStep
;
IsInWait
=
false
;
currShelfIndex
++;
if
(
ShelfPositionList
.
Count
>=
currShelfIndex
)
{
return
false
;
}
currShelfPosId
=
ShelfPositionList
[
currShelfIndex
];
//设置取料位置
MoveParam
.
UpdateShelfPosId
(
currShelfPosId
);
return
true
;
}
}
...
...
@@ -232,15 +242,7 @@ namespace OnlineStore.DeviceLibrary
wait
.
IsEnd
=
false
;
return
wait
;
}
//public static WaitResultInfo WaitHeight(int height)
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.WaitType = 7;
// wait.HeightValue = height;
// wait.IsEnd = false;
// return wait;
//}
public
string
ToStr
()
{
if
(
WaitType
==
1
)
...
...
source/LoadCVSLibrary/storeConfig/config/AC_Box_Config.cs
查看文件 @
1cbba93
...
...
@@ -264,10 +264,10 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"InOutAxis_P1_Position"
)]
public
int
InOutAxis_P1_Position
{
get
;
set
;
}
/// <summary>
/// PRO 押金轴(轴4)P1待机原位点 Comp
ress
Axis_P1_Position
/// PRO 押金轴(轴4)P1待机原位点 CompAxis_P1_Position
/// </summary>
[
ConfigProAttribute
(
"Comp
ress
Axis_P1_Position"
)]
public
int
Comp
ress
Axis_P1_Position
{
get
;
set
;
}
[
ConfigProAttribute
(
"CompAxis_P1_Position"
)]
public
int
CompAxis_P1_Position
{
get
;
set
;
}
/// <summary>
///轴2升降轴 运动上下轴
...
...
@@ -371,7 +371,40 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"CompAxis_P3_Speed"
)]
public
int
CompAxis_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,压紧轴(轴4)缓慢压紧速度,CompAxis_Com_Speed,100,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"CompAxis_Com_Speed"
)]
public
int
CompAxis_Com_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,升降轴(轴2)PA1速度,UpDownAxis_PA1_Speed,100,,,,,, ,
/// </summary>
[
ConfigProAttribute
(
"UpDownAxis_PA1_Speed"
)]
public
int
UpDownAxis_PA1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,升降轴(轴2)PA2速度,UpDownAxis_PA2_Speed,100,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"UpDownAxis_PA2_Speed"
)]
public
int
UpDownAxis_PA2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,进出轴(轴3)PA速度,InOutAxis_PA_Speed,100,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"InOutAxis_PA_Speed"
)]
public
int
InOutAxis_PA_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,旋转轴(轴1)PA速度,MiddleAxis_PA_Speed,120,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_PA_Speed"
)]
public
int
MiddleAxis_PA_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,压紧轴(轴4)P3压紧前点,CompAxis_P3_Position,10000,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"CompAxis_P3_Position"
)]
public
int
CompAxis_P3_Position
{
get
;
set
;
}
/// <summary>
/// 预警温度
/// </summary>
...
...
@@ -546,7 +579,7 @@ namespace OnlineStore.LoadCSVLibrary
Config
.
Middle_Axis
.
DefaultPosition
=
Config
.
MiddleAxis_P1_Position
;
Config
.
InOut_Axis
.
DefaultPosition
=
Config
.
InOutAxis_P1_Position
;
Config
.
UpDown_Axis
.
DefaultPosition
=
Config
.
UpDownAxis_DoorOPosition_P1
;
Config
.
Comp_Axis
.
DefaultPosition
=
Config
.
Comp
ress
Axis_P1_Position
;
Config
.
Comp_Axis
.
DefaultPosition
=
Config
.
CompAxis_P1_Position
;
Config
.
Comp_Axis
.
CanErrorCountMax
=
1000
;
Config
.
Comp_Axis
.
CanErrorCountMin
=
10
;
Config
.
Comp_Axis
.
PositionMin
=
0
;
...
...
source/LoadCVSLibrary/storeConfig/config/Store_Config.cs
查看文件 @
1cbba93
...
...
@@ -167,7 +167,7 @@ namespace OnlineStore.LoadCSVLibrary
Config
.
Middle_Axis
.
DefaultPosition
=
Config
.
MiddleAxis_P1_Position
;
Config
.
InOut_Axis
.
DefaultPosition
=
Config
.
InOutAxis_P1_Position
;
Config
.
UpDown_Axis
.
DefaultPosition
=
Config
.
UpDownAxis_DoorOPosition_P1
;
Config
.
Comp_Axis
.
DefaultPosition
=
Config
.
Comp
ress
Axis_P1_Position
;
Config
.
Comp_Axis
.
DefaultPosition
=
Config
.
CompAxis_P1_Position
;
Config
.
Comp_Axis
.
CanErrorCountMax
=
1000
;
Config
.
Comp_Axis
.
CanErrorCountMin
=
10
;
Config
.
Comp_Axis
.
PositionMin
=
0
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论