Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 02967b37
由
张东亮
编写于
2021-08-21 09:50:25 +0800
浏览文件
选项
浏览文件
标签
下载
差异文件
Merge branch 'master' of
http://106.15.194.121:8083/lina/SO908-XLRStore
2 个父辈
26617581
ecc17b1d
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
73 行增加
和
72 行删除
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
source/XLRStoreClient/FrmXLRStore.cs
source/XLRStoreClient/inputForm/FrmBatchMove.Designer.cs
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
02967b3
...
...
@@ -818,9 +818,9 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
IBR02_LineRun
,
/// <summary>
/// 入料模块复位:
料串信号一致,阻挡气缸上升
/// 入料模块复位:
批量轴直接走到待机点P1
/// </summary>
IBR03_
StopUp
,
IBR03_
BatchToP1
,
/// <summary>
/// 入料模块复位:批量轴原点返回
/// </summary>
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
查看文件 @
02967b3
...
...
@@ -97,8 +97,12 @@ namespace OnlineStore.DeviceLibrary
{
if
(
StoreManager
.
checkWatch
(
shelfWatch
,
10000
,
true
))
{
Asa
.
ClientAction
action
=
AgvClient
.
GetAction
(
Config
.
AgvName
);
var
agvcallresult
=
AgvClient
.
NeedEnter
(
Config
.
AgvName
,
""
,
Asa
.
ClientLevel
.
High
);
WorkLog
(
"无料串,:通知agv来送料串AgvName:"
+
Config
.
AgvName
+
",send NeedEnter=:"
+
agvcallresult
.
ToString
());
if
(!
action
.
Equals
(
Asa
.
ClientAction
.
NeedEnter
))
{
WorkLog
(
"无料串,:通知agv来送料串AgvName:"
+
Config
.
AgvName
+
",send NeedEnter=:"
+
agvcallresult
.
ToString
());
}
}
}
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Robot
.
IOValue
(
Config
.
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
...
...
@@ -121,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
}
string
msg
=
""
;
bool
axisOpen
=
BatchAxis
.
Open
(
true
,
out
msg
);
WorkLog
(
"批量轴打开结果:"
+
axisOpen
);
//
WorkLog("批量轴打开结果:" + axisOpen);
if
(!
axisOpen
)
{
BatchAxis
.
SuddenStop
();
...
...
@@ -164,25 +168,21 @@ namespace OnlineStore.DeviceLibrary
}
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR01_StopDown
))
{
//if (Robot.IOValue(Config.IO_LineIn_Check).Equals(Robot.IOValue(Config.IO_LineEnd_Check)))
//{
// LineStop();
// MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome);
// WorkLog("复位:批量轴开始回原点");
// BatchAxis.HomeMove(MoveInfo);
//}
//else
//{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR02_LineRun
);
WorkLog
(
"复位:链条正转3秒"
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
//}
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR02_LineRun
);
WorkLog
(
"复位:链条正转3秒"
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR02_LineRun
))
{
LineStop
();
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR03_BatchToP1
);
WorkLog
(
"复位:批量轴走到待机点"
);
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR03_BatchToP1
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR04_BatchHome
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
2000
));
WorkLog
(
"复位:批量轴开始回原点"
);
...
...
@@ -230,11 +230,7 @@ namespace OnlineStore.DeviceLibrary
{
StopMove
();
}
}
}
#
region
气缸操作
public
void
LineRun
(
DeviceMoveInfo
moveInfo
=
null
)
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
02967b3
...
...
@@ -174,62 +174,53 @@ namespace OnlineStore.DeviceLibrary
int
updownP
=
UpdownAxis
.
GetAclPosition
();
int
middleP
=
MiddleAxis
.
GetAclPosition
();
// if (UpdownAxis.IsInPosition(Config.Updown_P5_AUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位 {MoveInfo.SLog}:当前升降轴在 A上暂存区低点 {Config.Updown_P5_AUpperL},升降轴先到P4:{Config.Updown_P4_AUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P7_AUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 A下暂存区低点 {Config.Updown_P7_AUnderL},升降轴先到P6:{Config.Updown_P6_AUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P11_BUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B上暂存区低点{Config.Updown_P11_BUpperL},升降轴先到P10:{Config.Updown_P10_BUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P13_BUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B下暂存区低点 {Config.Updown_P13_BUnderL},升降轴先到P12{Config.Updown_P12_BUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_Speed);
//}
int
middleWucha
=
20000
;
int
updownWucha
=
20000
;
//旋转轴在A暂存区
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P4_AUpper
)
||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P7_AUnder
))
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P4_AUpper
,
middleWucha
)
||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P7_AUnder
,
middleWucha
))
{
//如果升降轴
<
下方高点
if
(
updownP
<
Config
.
Updown_P6_AUnderH
+
10000
)
//如果升降轴
低于
下方高点
if
(
updownP
>
Config
.
Updown_P6_AUnderH
-
updownWucha
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P
4
:{Config.Updown_P6_AUnderH}"
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P
6
:{Config.Updown_P6_AUnderH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P6_AUnderH
,
Config
.
Updown_P6_Speed
);
}
else
//升降轴高于上方低点
else
if
(
updownP
<
Config
.
Updown_P5_AUpperL
+
updownWucha
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},高于上方低点,升降轴到上方高点P4:{Config.Updown_P4_AUpperH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P4_AUpperH
,
Config
.
Updown_P4_Speed
);
}
else
{
SetWarnMsg
(
$
"复位失败,当前旋转轴位置{middleP},升降轴位置{updownP},无法判断位于A侧暂存区上方或下方"
);
Alarm
(
AlarmType
.
SuddenStop
);
}
}
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P5_BUpper
)||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P8_BUnder
))
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P5_BUpper
,
middleWucha
)
||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P8_BUnder
,
middleWucha
))
{
if
(
updownP
<
Config
.
Updown_P12_BUnderH
+
10000
)
//如果升降轴低于下方高点
if
(
updownP
>
Config
.
Updown_P12_BUnderH
-
updownWucha
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到
P4
:{Config.Updown_P12_BUnderH}"
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到
12
:{Config.Updown_P12_BUnderH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P12_BUnderH
,
Config
.
Updown_P12_BUnderH
);
}
else
//升降轴高于上方低点
else
if
(
updownP
<
Config
.
Updown_P11_BUpperL
+
updownWucha
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
}
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},高于上方低点,升降轴到上方高点P10:{Config.Updown_P10_BUpperH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P10_BUpperH
,
Config
.
Updown_P10_Speed
);
}
else
{
SetWarnMsg
(
$
"复位失败,当前旋转轴位置{middleP},升降轴位置{updownP},无法判断位于A侧暂存区上方或下方"
);
Alarm
(
AlarmType
.
SuddenStop
);
}
}
else
{
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip_InStore.cs
查看文件 @
02967b3
...
...
@@ -160,6 +160,7 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
barcode
.
EndsWith
(
"TEST"
))
{
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: 条码 {MoveInfo.MoveParam.PosInfo.barcode}为测试料,直接去目标位置"
);
LastPosInfo
=
MoveInfo
.
MoveParam
.
PosInfo
;
StrartToTargetP
(
MoveInfo
.
MoveParam
.
PosInfo
);
}
else
...
...
@@ -404,25 +405,25 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
StrartToTargetP
(
InOutPosInfo
lastPosInfo
)
{
{
int
shelf
=
MoveInfo
.
MoveParam
.
ShelfType
;
//判断是A还是B
if
(
L
astPosInfo
.
IsNG
)
if
(
l
astPosInfo
.
IsNG
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
II81_UpdownToP8
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: NG料{
L
astPosInfo.ToStr()} 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH}"
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: NG料{
l
astPosInfo.ToStr()} 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P8_NGH
,
Config
.
Updown_P8_Speed
);
}
else
if
(
L
astPosInfo
.
GetPosSide
().
Equals
(
"A"
))
else
if
(
l
astPosInfo
.
GetPosSide
().
Equals
(
"A"
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
II41_WaitNoReel
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: A侧入库料{
L
astPosInfo.ToStr()} 等待A上暂存区无料"
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: A侧入库料{
l
astPosInfo.ToStr()} 等待A上暂存区无料"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_Check_A
,
IO_VALUE
.
LOW
));
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
II61_WaitNoReel
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: B侧入库料{
L
astPosInfo.ToStr()} 等待B上暂存区无料"
);
MoveLog
(
$
"入库取料{shelf}{MoveInfo.SLog}: B侧入库料{
l
astPosInfo.ToStr()} 等待B上暂存区无料"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
UpperArea_Check_B
,
IO_VALUE
.
LOW
));
}
}
...
...
@@ -481,6 +482,15 @@ namespace OnlineStore.DeviceLibrary
LastPosInfo
=
result
.
Param
;
break
;
}
if
(
count
>=
3
)
{
//自动NG
LastPosInfo
=
new
InOutPosInfo
(
pos
.
barcode
,
""
);
LastPosInfo
.
IsNG
=
true
;
LastPosInfo
.
NgMsg
=
"获取库位超过三次,直接NG"
;
break
;
}
count
++;
}
}
...
...
source/XLRStoreClient/FrmXLRStore.cs
查看文件 @
02967b3
...
...
@@ -474,9 +474,13 @@ namespace OnlineStore.XLRStore
InputControl
.
ShowData
(
input
.
IsDebug
,
input
.
GetRunStr
(),
input
.
WarnMsg
,
input
.
MoveInfo
,
input
.
GetShowColor
());
ShelfAControl
.
ShowData
(
true
,
""
,
input
.
BatchMove_A
.
WarnMsg
,
input
.
BatchMove_A
.
MoveInfo
,
input
.
BatchMove_A
.
GetShowColor
(),
input
.
BatchMove_A
.
CurrShelf
?.
ToStr
());
ShelfBControl
.
ShowData
(
true
,
""
,
input
.
BatchMove_B
.
WarnMsg
,
input
.
BatchMove_B
.
MoveInfo
,
input
.
BatchMove_B
.
GetShowColor
(),
input
.
BatchMove_B
.
CurrShelf
?.
ToStr
());
ReelControlA1
.
ShowData
(
"A上暂存区物料"
,
BufferDataManager
.
AInStoreInfo
);
ReelControlA2
.
ShowData
(
"A下暂存区物料"
,
BufferDataManager
.
AOutStoreInfo
);
ReelControlB1
.
ShowData
(
"B上暂存区物料"
,
BufferDataManager
.
BInStoreInfo
);
ReelControlB2
.
ShowData
(
"B下暂存区物料"
,
BufferDataManager
.
BOutStoreInfo
);
if
(
StoreBean
.
runStatus
>
RunStatus
.
Wait
)
{
if
(
启动
AToolStripMenuItem
.
Enabled
.
Equals
(
true
))
...
...
source/XLRStoreClient/inputForm/FrmBatchMove.Designer.cs
查看文件 @
02967b3
...
...
@@ -236,7 +236,7 @@
this
.
batchAxisP2
.
Name
=
"batchAxisP2"
;
this
.
batchAxisP2
.
PointBackColor
=
System
.
Drawing
.
Color
.
Transparent
;
this
.
batchAxisP2
.
PointForeColor
=
System
.
Drawing
.
Color
.
Blue
;
this
.
batchAxisP2
.
PointText
=
"上
升待机点
P2:"
;
this
.
batchAxisP2
.
PointText
=
"上
料目标位置
P2:"
;
this
.
batchAxisP2
.
PointValue
=
0
;
this
.
batchAxisP2
.
Size
=
new
System
.
Drawing
.
Size
(
233
,
41
);
this
.
batchAxisP2
.
TabIndex
=
325
;
...
...
@@ -248,7 +248,7 @@
this
.
batchAxisP1
.
Name
=
"batchAxisP1"
;
this
.
batchAxisP1
.
PointBackColor
=
System
.
Drawing
.
Color
.
Transparent
;
this
.
batchAxisP1
.
PointForeColor
=
System
.
Drawing
.
Color
.
Blue
;
this
.
batchAxisP1
.
PointText
=
"
上升
待机点P1:"
;
this
.
batchAxisP1
.
PointText
=
"待机点P1:"
;
this
.
batchAxisP1
.
PointValue
=
0
;
this
.
batchAxisP1
.
Size
=
new
System
.
Drawing
.
Size
(
233
,
41
);
this
.
batchAxisP1
.
TabIndex
=
324
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论