Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 148e3fdb
由
张东亮
编写于
2021-06-01 16:10:34 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
存储机构-0601最新
1 个父辈
56ad2460
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
375 行增加
和
279 行删除
source/DeviceLibrary/manager/StoreManager.cs
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/manager/model/InOutParam.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
source/DeviceLibrary/manager/StoreManager.cs
查看文件 @
148e3fd
...
@@ -97,14 +97,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -97,14 +97,14 @@ namespace OnlineStore.DeviceLibrary
string
inputConfigPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Input
);
string
inputConfigPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Input
);
InputEquip_Config
inputConfig
=
CSVConfigReader
.
LoadInputConfig
(
1
,
DeviceType
.
InputEquip
,
inputConfigPath
);
InputEquip_Config
inputConfig
=
CSVConfigReader
.
LoadInputConfig
(
1
,
DeviceType
.
InputEquip
,
inputConfigPath
);
inputConfig
.
CID
=
CID
;
inputConfig
.
SetIO
(
1
);
inputConfig
.
SetIO
(
1
);
allConfigMap
.
Add
(
1
,
inputConfig
);
allConfigMap
.
Add
(
1
,
inputConfig
);
string
boxPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Box
);
string
boxPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Box
);
BoxEquip_Config
boxConfig
=
CSVConfigReader
.
LoadBoxConfig
(
2
,
DeviceType
.
BoxEquip
,
boxPath
);
BoxEquip_Config
boxConfig
=
CSVConfigReader
.
LoadBoxConfig
(
2
,
DeviceType
.
BoxEquip
,
boxPath
);
boxConfig
.
SetIO
(
2
);
boxConfig
.
SetIO
(
2
);
boxConfig
.
CID
=
CID
;
allConfigMap
.
Add
(
2
,
boxConfig
);
allConfigMap
.
Add
(
2
,
boxConfig
);
//加载点位
//加载点位
string
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_BoxPosition
);
string
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_BoxPosition
);
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
148e3fd
...
@@ -109,6 +109,264 @@ namespace OnlineStore.DeviceLibrary
...
@@ -109,6 +109,264 @@ namespace OnlineStore.DeviceLibrary
public
enum
StepEnum
public
enum
StepEnum
{
{
Wait
=
0
,
Wait
=
0
,
#
region
料仓原点返回和重置步骤
100
开始
/// <summary>
/// BOX复位:存储机构复位
/// </summary>
BOX_H01_Wait
=
101
,
/// <summary>
/// BOX复位:料斗拉取升降轴到待机点
/// </summary>
BOX_H02_PullAxis_UpDownToP1
,
/// <summary>
/// BOX复位:料斗拉取进出轴先返回原点
/// </summary>
BOX_H03_PullAxis_InoutHome
,
/// <summary>
/// BOX复位:料斗拉取升降轴、AB面压紧轴返回原点
/// </summary>
BOX_H04_PullAxis_Updown_ABComAxis_Home
,
/// <summary>
/// BOX复位:AB面移栽x轴原点返回
/// </summary>
BOX_H05_XAxis_AB_Home
,
/// <summary>
/// BOX复位:行走机构、移栽升降轴、AB面移栽旋转轴原点返回
/// </summary>
BOX_H06_OtherAxis_Home
,
/// <summary>
/// BOX待机位:料斗拉取升降轴先返回待机位
/// </summary>
BOX_R01_PullAxis_UpDownToP1
,
/// <summary>
/// BOX待机位:料斗拉取进出轴、AB面压紧轴返回待机位
/// </summary>
BOX_R02_PullAxis_InOut_ABComAxis_ToP1
,
/// <summary>
/// BOX待机位:AB面移栽x轴返回待机位
/// </summary>
BOX_R03_XAxis_AB_ToP1
,
/// <summary>
/// BOX待机位:行走机构、移栽升降轴、AB面移栽旋转轴返回待机位
/// </summary>
BOX_R04_OtherAxisToP1
,
#
endregion
#
region
出库步骤
200
开始
/// <summary>
/// 料仓出库:开始出库
/// </summary>
SO_00_StartOutstore
=
201
,
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1,料斗拉取升降轴运动到P1
/// </summary>
SO_01_PullAxis_Ready
,
/// <summary>
/// 料仓出库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A/B面移栽旋转轴到P3(料屉垂直取放料点)
/// </summary>
SO_02_ToPosition
,
/// <summary>
/// 料仓出库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SO_03_ToTray
,
/// <summary>
/// 料仓出库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_04_LiftTray
,
/// <summary>
/// 料仓出库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SO_05_PullTray
,
/// <summary>
/// 料仓出库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SO_06_DropTrayToPos
,
/// <summary>
/// 料仓出库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SO_07_GetReel
,
/// <summary>
/// 料仓出库:压紧轴开始缓慢压紧,A/B面移栽压紧轴到P3(压紧点)
/// </summary>
SO_08_StartCompress
,
///// <summary>
///// 料仓出库:检测到料叉压紧确认信号,再次向下压紧指定的值
///// </summary>
//SO_09_ComDownMove,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
//SO_10_CheckComSig,
/// <summary>
///料仓出库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SO_09_UpDownBack
,
/// <summary>
/// 料仓出库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_10_LiftTray
,
/// <summary>
/// 料仓出库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SO_11_PushTray
,
/// <summary>
/// 料仓出库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SO_12_PutTrayDown
,
/// <summary>
/// 料仓出库:料斗拉取进出轴到P1(待机点)
/// </summary>
SO_13_InoutBack
,
/// <summary>
/// 料仓出库:取料完成,准备去出料口
/// </summary>
SO_14_GetReels_Ready
,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SO_15_ToBufferArea
,
/// <summary>
/// 料仓出库:确保暂存区无料盘
/// 如果有料盘则报警,该区域无料时才会出库
/// </summary>
SO_16_VerifyBufferState
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SO_17_InOutToBuff
,
/// <summary>
/// 料仓出库:把料盘放下
/// 1. 移栽升降轴到A/B下暂存区放料低点
/// 2. A/B面移栽压紧轴到P2压紧前点
/// </summary>
SO_18_PutReel
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P1(待机点)
/// </summary>
SO_19_InOutBackFromBuff
,
/// <summary>
/// 料仓出库:A/B面移栽旋转轴到P1(待机点)
/// </summary>
SO_20_Finish
,
#
endregion
#
region
入库步骤,
300
开始
/// <summary>
/// 料仓入库:开始入库
/// </summary>
SI_00_StartInstore
=
301
,
/// <summary>
///料仓入库:料斗拉取进出轴先运动到P1
/// </summary>
SI_01_PullAxis_Ready
,
/// <summary>
/// 料仓入库:到料盘暂存区
/// 1. 行走机构到P2(进出料机构取放点)
/// 2. 移栽升降轴到P3(A上暂存区取料低点)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SI_02_ToBufferArea
,
/// <summary>
/// 料仓入库:确保暂存区有料盘
/// 如果无料盘则报警
/// </summary>
SI_03_VerifyBufferState
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SI_04_InOutToBuff
,
/// <summary>
/// 料仓入库:取料盘
/// 1. 移栽升降轴到P2(A上暂存区取料高点)
/// 2. A/B面移栽压紧轴到P3压紧点
/// </summary>
SI_05_GetReel
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P3(A/B面料屉库位取放料点)
/// </summary>
SI_06_InOutBackFromBuff
,
/// <summary>
/// 料仓入库:A/B面移栽旋转轴到P3(A面料屉库位垂直取放料点)
/// </summary>
SI_07_MiddleToP3
,
/// <summary>
/// 料仓入库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. 料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_08_ToPosition
,
/// <summary>
/// 料仓入库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SI_09_ToTray
,
/// <summary>
/// 料仓入库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_10_LiftTray
,
/// <summary>
/// 料仓入库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SI_11_PullTray
,
/// <summary>
/// 料仓入库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SI_12_DropTrayToPos
,
/// <summary>
/// 料仓入库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SI_13_GetReel
,
///// <summary>
///// 料仓入库:压紧轴开始缓慢释放,A/B面移栽压紧轴到P2(压紧前点)
///// </summary>
SI_14_ReleaseCompress
,
/// <summary>
///料仓入库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SI_15_UpDownBack
,
/// <summary>
/// 料仓入库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_16_LiftTray
,
/// <summary>
/// 料仓入库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SI_17_PushTray
,
/// <summary>
/// 料仓入库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_18_PutTrayDown
,
/// <summary>
/// 料仓入库:料斗拉取进出轴到P1(待机点),检查另一边入库情况
/// </summary>
SI_19_InoutBack
,
#
endregion
#
region
入料模块复位
1000
开始
#
region
入料模块复位
1000
开始
...
@@ -605,269 +863,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -605,269 +863,6 @@ namespace OnlineStore.DeviceLibrary
}
}
/// <summary>
/// 料仓运动状态(当料仓状态=busy时,才会有此运动状态)
/// </summary>
public
enum
StoreStep
{
/// <summary>
/// 无操作,等待状态
/// </summary>
Wait
=
0
,
#
region
料仓原点返回和重置步骤
0010
开始
/// <summary>
/// BOX复位:料斗拉取进出轴先返回原点
/// </summary>
BOX_H01_PullAxis_InoutBack
=
011
,
/// <summary>
/// BOX复位:料斗拉取升降轴、AB面压紧轴返回原点
/// </summary>
BOX_H02_PullAxis_Updown_ABComAxis_Back
=
012
,
/// <summary>
/// BOX复位:AB面移栽x轴原点返回
/// </summary>
BOX_H03_XAxis_AB_Back
=
013
,
/// <summary>
/// BOX复位:行走机构、移栽升降轴、AB面移栽旋转轴原点返回
/// </summary>
BOX_H04_OtherAxisBack
=
014
,
/// <summary>
/// BOX待机位:料斗拉取进出轴先返回待机位
/// </summary>
BOX_H05_PullAxis_InoutToP1
=
015
,
/// <summary>
/// BOX待机位:料斗拉取升降轴、AB面压紧轴返回待机位
/// </summary>
BOX_H06_PullAxis_Updown_ABComAxis_ToP1
=
016
,
/// <summary>
/// BOX待机位:AB面移栽x轴返回待机位
/// </summary>
BOX_H07_XAxis_AB_ToP1
=
017
,
/// <summary>
/// BOX待机位:行走机构、移栽升降轴、AB面移栽旋转轴返回待机位
/// </summary>
BOX_H08_OtherAxisToP1
=
018
,
#
endregion
#
region
出库步骤
2000
开始
/// <summary>
///料仓出库:检查出库的料在哪一边
/// </summary>
SO_00_StartWithCheck
=
2001
,
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1,料斗拉取升降轴运动到料屉提取低点
/// </summary>
SO_01_PullAxis_Ready
=
2002
,
/// <summary>
/// 料仓出库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A/B面移栽旋转轴到P3(料屉垂直取放料点)
/// </summary>
SO_02_ToPosition
,
/// <summary>
/// 料仓出库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SO_03_ToTray
,
/// <summary>
/// 料仓出库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_04_LiftTray
,
/// <summary>
/// 料仓出库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SO_05_PullTray
,
/// <summary>
/// 料仓出库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SO_06_DropTrayToPos
,
/// <summary>
/// 料仓出库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SO_07_GetReel
,
///// <summary>
///// 料仓出库:压紧轴开始缓慢压紧,A/B面移栽压紧轴到P3(压紧点)
///// </summary>
SO_08_StartCompress
,
///// <summary>
///// 料仓出库:检测到料叉压紧确认信号,再次向下压紧指定的值
///// </summary>
//SO_09_ComDownMove,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
//SO_10_CheckComSig,
/// <summary>
///料仓出库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SO_09_UpDownBack
,
/// <summary>
/// 料仓出库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_10_LiftTray
,
/// <summary>
/// 料仓出库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SO_11_PushTray
,
/// <summary>
/// 料仓出库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SO_12_PutTrayDown
,
/// <summary>
/// 料仓出库:料斗拉取进出轴到P1(待机点)
/// </summary>
SO_13_InoutBack
,
/// <summary>
/// 料仓出库:检查另一边是否有出库任务
/// </summary>
SO_14_CheckOtherSide
,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
S0_15_ToBufferArea
,
/// <summary>
/// 料仓出库:确保暂存区无料盘
/// 如果有料盘则报警,该区域无料时才会出库
/// </summary>
SO_16_VerifyBufferState
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SO_17_InOutToBuff
,
/// <summary>
/// 料仓出库:把料盘放下
/// 1. 移栽升降轴到A/B下暂存区放料低点
/// 2. A/B面移栽压紧轴到P2压紧前点
/// </summary>
SO_18_PutReel
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P1(待机点)
/// </summary>
SO_19_InOutBackFromBuff
,
/// <summary>
/// 料仓出库:A/B面移栽旋转轴到P1(待机点)
/// </summary>
SO_20_Finish
,
#
endregion
#
region
入库步骤,
3000
开始
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1
/// </summary>
SI_01_PullAxis_Ready
=
3010
,
/// <summary>
/// 料仓入库:到料盘暂存区
/// 1. 移栽升降轴到P3(A上暂存区取料低点)
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SI_02_ToBufferArea
,
/// <summary>
/// 料仓入库:确保暂存区有料盘
/// 如果无料盘则报警
/// </summary>
SI_03_VerifyBufferState
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SI_04_InOutToBuff
,
/// <summary>
/// 料仓入库:取料盘
/// 1. 移栽升降轴到P2(A上暂存区取料高点)
/// 2. A/B面移栽压紧轴到P3压紧点
/// </summary>
SI_05_GetReel
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P3(A/B面料屉库位取放料点)
/// </summary>
SI_06_InOutBackFromBuff
,
/// <summary>
/// 料仓入库:A/B面移栽旋转轴到P3(A面料屉库位垂直取放料点)
/// </summary>
SI_07_MiddleToP3
,
/// <summary>
/// 料仓入库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. 料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_08_ToPosition
,
/// <summary>
/// 料仓入库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SI_09_ToTray
,
/// <summary>
/// 料仓入库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_10_LiftTray
,
/// <summary>
/// 料仓入库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SI_11_PullTray
,
/// <summary>
/// 料仓入库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SI_12_DropTrayToPos
,
/// <summary>
/// 料仓入库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SI_13_GetReel
,
///// <summary>
///// 料仓入库:压紧轴开始缓慢释放,A/B面移栽压紧轴到P2(压紧前点)
///// </summary>
SI_14_ReleaseCompress
,
/// <summary>
///料仓入库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SI_15_UpDownBack
,
/// <summary>
/// 料仓入库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_16_LiftTray
,
/// <summary>
/// 料仓入库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SI_17_PushTray
,
/// <summary>
/// 料仓入库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SI_18_PutTrayDown
,
/// <summary>
/// 料仓入库:料斗拉取进出轴到P1(待机点)
/// </summary>
SI_19_InoutBack
,
/// <summary>
/// 料仓入库:检查另一边入库情况
/// </summary>
SI_20_CheckOtherSide
,
#
endregion
}
public
enum
AlarmType
public
enum
AlarmType
{
{
/// <summary>
/// <summary>
...
...
source/DeviceLibrary/manager/model/InOutParam.cs
查看文件 @
148e3fd
...
@@ -136,6 +136,106 @@ namespace OnlineStore.DeviceLibrary
...
@@ -136,6 +136,106 @@ namespace OnlineStore.DeviceLibrary
public
bool
IsNG
{
get
;
set
;
}
=
false
;
public
bool
IsNG
{
get
;
set
;
}
=
false
;
public
string
NgMsg
{
get
;
set
;
}
=
""
;
public
string
NgMsg
{
get
;
set
;
}
=
""
;
public
int
GetPosType
()
{
int
startP
=
0
;
if
(
String
.
IsNullOrEmpty
(
PosId
))
{
return
0
;
}
if
(
PosId
.
Contains
(
"AA"
))
{
startP
=
1
;
}
else
if
(
PosId
.
Contains
(
"BB"
))
{
startP
=
2
;
}
return
startP
;
}
/// <summary>
/// 库位在存储机构哪个面
/// 0=未知,1=A面,2=B面
/// 例:05AA03040102
// 05:表示料仓编号,01-08
// AA:存储机构A面或B面,AA或者BB
// 03:表示抽屉在第几行
// 04:表示抽屉在第几列
// 01:表示在抽屉中的第几行
//02:表示在抽屉中的第几列
/// </summary>
public
string
PosSide
{
get
{
if
(
PosId
.
Substring
(
2
,
2
).
Equals
(
"AA"
))
return
"A"
;
else
if
(
PosId
.
Substring
(
2
,
2
).
Equals
(
"BB"
))
return
"B"
;
return
""
;
}
}
/// <summary>
/// 检查库位是否存在
/// </summary>
/// <returns></returns>
public
bool
CheckPosition
()
{
BoxPosition
position
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
PosId
);
if
(
position
==
null
)
{
return
false
;
}
return
true
;
}
/// <summary>
/// 获取料盘所在料屉的层序号
/// </summary>
/// <returns></returns>
public
int
GetTrayRow
()
{
int
.
TryParse
(
PosId
.
Substring
(
4
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘所在料屉的列序号
/// </summary>
/// <returns></returns>
public
int
GetTrayColumn
()
{
int
.
TryParse
(
PosId
.
Substring
(
6
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘在抽屉里的行
/// </summary>
/// <returns></returns>
public
int
GetRowInTray
()
{
int
.
TryParse
(
PosId
.
Substring
(
8
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘在抽屉里的列
/// </summary>
/// <returns></returns>
public
int
GetColumnInTray
()
{
int
.
TryParse
(
PosId
.
Substring
(
10
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 拷贝一个新的实例
/// </summary>
/// <returns></returns>
public
InOutPosInfo
ToCopy
()
{
InOutPosInfo
posInfo
=
new
InOutPosInfo
();
System
.
Reflection
.
PropertyInfo
[]
info1
=
posInfo
.
GetType
().
GetProperties
();
System
.
Reflection
.
PropertyInfo
[]
info2
=
this
.
GetType
().
GetProperties
();
for
(
int
i
=
0
;
i
<
info1
.
Length
;
i
++)
info1
[
i
].
SetValue
(
posInfo
,
info2
[
i
].
GetValue
(
this
));
return
posInfo
;
}
}
}
/// <summary>
/// <summary>
/// 出入库位置信息
/// 出入库位置信息
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
查看文件 @
148e3fd
...
@@ -37,8 +37,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -37,8 +37,8 @@ namespace OnlineStore.DeviceLibrary
if
(
CurrShelf
.
ShelfState
.
Equals
(
3
))
if
(
CurrShelf
.
ShelfState
.
Equals
(
3
))
{
{
bool
agvcallresult
=
AgvClient
.
NeedLeave
(
AgvName
,
CurrShelf
.
ShelfRfid
,
ClientLevel
.
High
);
bool
agvcallresult
=
AgvClient
.
NeedLeave
(
AgvName
,
CurrShelf
.
ShelfRfid
,
ClientLevel
.
High
);
LogUtil
.
info
(
Name
+
"StartInstore 失败,料串"
+
CurrShelf
.
ToStr
()
+
"需要离开,NeedLeave:"
+
AgvName
+
","
+
CurrShelf
.
ShelfRfid
+
",agvcallresult:"
+
agvcallresult
.
ToString
());
LogUtil
.
info
(
Name
+
"StartInstore 失败,料串"
+
CurrShelf
.
ToStr
()
+
"需要离开,NeedLeave:"
+
AgvName
+
","
+
CurrShelf
.
ShelfRfid
+
",agvcallresult:"
+
agvcallresult
.
ToString
());
return
false
;
return
false
;
}
}
if
(
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
...
@@ -160,13 +160,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -160,13 +160,13 @@ namespace OnlineStore.DeviceLibrary
if
(
CurrShelf
.
ShelfRfid
.
EndsWith
(
"00"
))
if
(
CurrShelf
.
ShelfRfid
.
EndsWith
(
"00"
))
{
{
SendInShelfLeave
(
" 料串号【"
+
CurrShelf
.
ShelfRfid
+
"】无效 "
);
SendInShelfLeave
(
" 料串号【"
+
CurrShelf
.
ShelfRfid
+
"】无效 "
);
}
}
else
else
{
{
IB07_AxisUpMove
();
IB07_AxisUpMove
();
}
}
}
}
}
}
else
else
{
{
...
@@ -449,13 +449,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -449,13 +449,13 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
ShelfNeedLeave
)
if
(
ShelfNeedLeave
)
{
{
SendOutShelfLeave
(
"手动送料串离开"
);
SendOutShelfLeave
(
"手动送料串离开"
);
}
}
else
else
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IS11_ShelfReady
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IS11_ShelfReady
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
}
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IS12_AxisDown
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IS12_AxisDown
))
{
{
...
@@ -501,7 +501,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -501,7 +501,7 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
}
}
internal
void
NewReelOut
(
InOutPosInfo
posInfo
,
string
xnRfid
=
""
)
internal
void
NewReelOut
(
InOutPosInfo
posInfo
,
string
xnRfid
=
""
)
{
{
UpdateShelf
(
2
,
xnRfid
);
UpdateShelf
(
2
,
xnRfid
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IS12_AxisDown
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IS12_AxisDown
);
...
@@ -748,7 +748,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -748,7 +748,7 @@ namespace OnlineStore.DeviceLibrary
string
configStr
=
""
;
string
configStr
=
""
;
if
(
EquipType
.
Equals
(
1
))
if
(
EquipType
.
Equals
(
1
))
{
{
configStr
=
Setting_Init
.
AShelfInfo
;
configStr
=
Setting_Init
.
AShelfInfo
;
}
}
else
else
{
{
...
@@ -769,7 +769,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -769,7 +769,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
else
{
{
RFIDData
rfidD
=
RFIDManager
.
ReadRFID
(
RfidIP
);
RFIDData
rfidD
=
RFIDManager
.
ReadRFID
(
RfidIP
);
CurrShelf
=
new
ShelfInfo
(
rfidD
.
StrData
,
state
,
xnRfid
);
CurrShelf
=
new
ShelfInfo
(
rfidD
.
StrData
,
state
,
xnRfid
);
BufferDataManager
.
SaveData
<
ShelfInfo
>(
configStr
,
CurrShelf
);
BufferDataManager
.
SaveData
<
ShelfInfo
>(
configStr
,
CurrShelf
);
LogUtil
.
info
(
Name
+
"当前料串信息:"
+
CurrShelf
.
ToStr
());
LogUtil
.
info
(
Name
+
"当前料串信息:"
+
CurrShelf
.
ToStr
());
...
@@ -786,9 +786,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -786,9 +786,10 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
public
class
ShelfInfo
{
public
class
ShelfInfo
{
public
ShelfInfo
(
string
rfid
=
""
,
int
state
=
0
,
string
xnrfid
=
""
)
public
ShelfInfo
(
string
rfid
=
""
,
int
state
=
0
,
string
xnrfid
=
""
)
{
{
this
.
ShelfRfid
=
rfid
;
this
.
ShelfRfid
=
rfid
;
this
.
ShelfState
=
state
;
this
.
ShelfState
=
state
;
...
@@ -797,11 +798,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -797,11 +798,11 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// <summary>
/// 料串RFID
/// 料串RFID
/// </summary>
/// </summary>
public
string
ShelfRfid
=
""
;
public
string
ShelfRfid
=
""
;
/// <summary>
/// <summary>
/// 料串状态,0=未开始,1=入库,2=出库中,3=需要离开
/// 料串状态,0=未开始,1=入库,2=出库中,3=需要离开
/// </summary>
/// </summary>
public
int
ShelfState
=
0
;
public
int
ShelfState
=
0
;
public
string
XuniRfid
=
""
;
public
string
XuniRfid
=
""
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论