Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d9847538
由
LN
编写于
2021-08-20 13:03:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
上料机构修改
1 个父辈
f8dca7a7
全部展开
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
116 行增加
和
40 行删除
source/DeviceLibrary/baan/AxisBean.cs
source/DeviceLibrary/deviceLibrary/IO/IOManager.cs
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/storeBean/EquipBase.cs
source/DeviceLibrary/storeBean/XLRStoreBean.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
source/XLRStoreClient/inputForm/FrmBatchMove.cs
source/XLRStoreClient/记录.txt
source/DeviceLibrary/baan/AxisBean.cs
查看文件 @
d984753
...
@@ -241,12 +241,16 @@ namespace OnlineStore.DeviceLibrary
...
@@ -241,12 +241,16 @@ namespace OnlineStore.DeviceLibrary
int
p
=
AxisManager
.
instance
.
GetActualtPosition
(
Config
.
DeviceName
,
Config
.
GetAxisValue
());
int
p
=
AxisManager
.
instance
.
GetActualtPosition
(
Config
.
DeviceName
,
Config
.
GetAxisValue
());
return
p
;
return
p
;
}
}
public
bool
IsInPosition
(
int
targetP
)
public
bool
IsInPosition
(
int
targetP
,
int
canErrorMax
=
0
)
{
{
if
(
canErrorMax
<=
0
)
{
canErrorMax
=
Config
.
CanErrorCountMax
;
}
int
currp
=
GetAclPosition
();
int
currp
=
GetAclPosition
();
int
chaz
=
targetP
-
currp
;
int
chaz
=
targetP
-
currp
;
if
(
Math
.
Abs
(
chaz
)
<
Config
.
CanErrorCount
Max
)
if
(
Math
.
Abs
(
chaz
)
<
canError
Max
)
{
{
return
true
;
return
true
;
}
}
...
...
source/DeviceLibrary/deviceLibrary/IO/IOManager.cs
查看文件 @
d984753
...
@@ -149,6 +149,16 @@ namespace OnlineStore.DeviceLibrary
...
@@ -149,6 +149,16 @@ namespace OnlineStore.DeviceLibrary
}
}
return
configIo
;
return
configIo
;
}
}
internal
static
ConfigIO
GetIO
(
string
ioType
,
int
subType
)
{
ConfigIO
configIo
=
GetDI
(
ioType
,
subType
);
if
(
configIo
==
null
)
{
configIo
=
GetDO
(
ioType
,
subType
);
}
return
configIo
;
}
private
static
ConfigIO
GetDO
(
string
ioType
,
int
subType
)
private
static
ConfigIO
GetDO
(
string
ioType
,
int
subType
)
{
{
ConfigIO
configIo
=
null
;
ConfigIO
configIo
=
null
;
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
d984753
...
@@ -816,9 +816,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -816,9 +816,14 @@ namespace OnlineStore.DeviceLibrary
IB02_BatchAxisToP1
,
IB02_BatchAxisToP1
,
/// <summary>
/// <summary>
/// 料串入料:
链条开始转动
/// 料串入料:
入口有料架,转动到料架到位
/// </summary>
/// </summary>
IB04_LineStart
,
IB03_LineStart
,
/// <summary>
/// 料串入料:料架已到位,在转动3秒
/// </summary>
IB04_LineWait
,
/// <summary>
/// <summary>
/// 料串入料:阻挡气缸上升
/// 料串入料:阻挡气缸上升
...
...
source/DeviceLibrary/storeBean/EquipBase.cs
查看文件 @
d984753
...
@@ -283,7 +283,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -283,7 +283,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
{
{
NotOkMsg
=
" ["
+
IOManager
.
Get
DI
(
wait
.
IoType
,
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"]"
;
NotOkMsg
=
" ["
+
IOManager
.
Get
IO
(
wait
.
IoType
,
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"]"
;
wait
.
IsEnd
=
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
wait
.
IsEnd
=
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
if
(!
wait
.
IsEnd
)
if
(!
wait
.
IsEnd
)
...
...
source/DeviceLibrary/storeBean/XLRStoreBean.cs
查看文件 @
d984753
...
@@ -398,7 +398,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -398,7 +398,7 @@ namespace OnlineStore.DeviceLibrary
NotOkMsg
=
" ["
+
wait
.
ToStr
()
+
"] "
;
NotOkMsg
=
" ["
+
wait
.
ToStr
()
+
"] "
;
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
{
{
NotOkMsg
=
" ["
+
IOManager
.
Get
DI
(
wait
.
IoType
,
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"] "
;
NotOkMsg
=
" ["
+
IOManager
.
Get
IO
(
wait
.
IoType
,
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"] "
;
wait
.
IsEnd
=
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
wait
.
IsEnd
=
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
if
(!
wait
.
IsEnd
)
if
(!
wait
.
IsEnd
)
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
查看文件 @
d984753
...
@@ -57,7 +57,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -57,7 +57,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
=
new
DeviceMoveInfo
(
Name
);
MoveInfo
=
new
DeviceMoveInfo
(
Name
);
}
}
internal
void
TimerProcess
()
public
void
TimerProcess
()
{
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
{
{
...
@@ -70,6 +70,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -70,6 +70,10 @@ namespace OnlineStore.DeviceLibrary
{
{
StartInstore
(
new
InOutParam
());
StartInstore
(
new
InOutParam
());
}
}
else
if
(
Robot
.
AutoInput
&&
Robot
.
IOValue
(
Config
.
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
StartInstore
(
new
InOutParam
());
}
}
}
}
}
else
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
))
else
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
))
...
@@ -115,6 +119,15 @@ namespace OnlineStore.DeviceLibrary
...
@@ -115,6 +119,15 @@ namespace OnlineStore.DeviceLibrary
{
{
StopMove
();
StopMove
();
}
}
string
msg
=
""
;
if
(!
BatchAxis
.
Open
(
true
,
out
msg
))
{
BatchAxis
.
SuddenStop
();
BatchAxis
.
ServoOff
();
WarnMsg
=
Name
+
"复位失败:批量轴打开失败:"
+
msg
;
return
false
;
}
WarnMsg
=
""
;
WarnMsg
=
""
;
alarmType
=
AlarmType
.
None
;
alarmType
=
AlarmType
.
None
;
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
...
@@ -122,6 +135,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -122,6 +135,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
WorkLog
(
"开始复位,定位气缸下降"
);
WorkLog
(
"开始复位,定位气缸下降"
);
StopDown
(
MoveInfo
);
StopDown
(
MoveInfo
);
return
true
;
}
}
else
else
{
{
...
@@ -149,20 +163,20 @@ namespace OnlineStore.DeviceLibrary
...
@@ -149,20 +163,20 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR01_StopDown
))
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR01_StopDown
))
{
{
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
Robot
.
IOValue
(
Config
.
IO_LineEnd_Check
)))
//
if (Robot.IOValue(Config.IO_LineIn_Check).Equals(Robot.IOValue(Config.IO_LineEnd_Check)))
{
//
{
LineStop
();
//
LineStop();
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR04_BatchHome
);
//
MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome);
WorkLog
(
"复位:批量轴开始回原点"
);
//
WorkLog("复位:批量轴开始回原点");
BatchAxis
.
HomeMove
(
MoveInfo
);
//
BatchAxis.HomeMove(MoveInfo);
}
//
}
else
//
else
{
//
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR02_LineRun
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IBR02_LineRun
);
WorkLog
(
"复位:链条正转3秒"
);
WorkLog
(
"复位:链条正转3秒"
);
LineRun
(
MoveInfo
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
}
//
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR02_LineRun
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR02_LineRun
))
{
{
...
@@ -327,6 +341,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -327,6 +341,10 @@ namespace OnlineStore.DeviceLibrary
//当等待超过一分钟时,需要打印提示
//当等待超过一分钟时,需要打印提示
TimeSpan
span
=
DateTime
.
Now
-
moveInfo
.
LastSetpTime
;
TimeSpan
span
=
DateTime
.
Now
-
moveInfo
.
LastSetpTime
;
if
(
span
.
TotalMilliseconds
<
300
)
{
return
;
}
string
NotOkMsg
=
""
;
string
NotOkMsg
=
""
;
bool
isOk
=
!
moveInfo
.
OneWaitCanEndStep
;
bool
isOk
=
!
moveInfo
.
OneWaitCanEndStep
;
foreach
(
WaitResultInfo
wait
in
list
)
foreach
(
WaitResultInfo
wait
in
list
)
...
@@ -363,7 +381,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -363,7 +381,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W002_IOValue
))
{
{
NotOkMsg
=
" ["
+
IOManager
.
Get
DI
(
wait
.
IoType
,
Robot
.
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"]"
;
NotOkMsg
=
" ["
+
IOManager
.
Get
IO
(
wait
.
IoType
,
Robot
.
DeviceID
).
DisplayStr
+
"="
+
wait
.
IoValue
+
"]"
;
wait
.
IsEnd
=
Robot
.
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
wait
.
IsEnd
=
Robot
.
IOValue
(
wait
.
IoType
).
Equals
(
wait
.
IoValue
);
if
(!
wait
.
IsEnd
&&
(!
moveInfo
.
IsStep
(
StepEnum
.
IB23_ShelfOut
)))
if
(!
wait
.
IsEnd
&&
(!
moveInfo
.
IsStep
(
StepEnum
.
IB23_ShelfOut
)))
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
查看文件 @
d984753
...
@@ -40,19 +40,23 @@ namespace OnlineStore.DeviceLibrary
...
@@ -40,19 +40,23 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
Name
+
"StartInstore 失败,料串"
+
CurrShelf
.
ToStr
()
+
"需要离开,NeedLeave:"
+
Config
.
AgvName
+
","
+
CurrShelf
.
ShelfRfid
+
",agvcallresult:"
+
agvcallresult
.
ToString
());
LogUtil
.
info
(
Name
+
"StartInstore 失败,料串"
+
CurrShelf
.
ToStr
()
+
"需要离开,NeedLeave:"
+
Config
.
AgvName
+
","
+
CurrShelf
.
ShelfRfid
+
",agvcallresult:"
+
agvcallresult
.
ToString
());
return
false
;
return
false
;
}
}
if
(
Robot
.
IOValue
(
Config
.
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
//if (Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH))
//{
// MoveInfo.NewMove(MoveType.InStore);
// MoveInfo.MoveParam = new InOutParam();
// //判断是哪个工位有料串
// IB05_StopUp();
//}
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
{
MoveInfo
.
NewMove
(
MoveType
.
InStore
);
MoveInfo
.
NewMove
(
MoveType
.
InStore
);
MoveInfo
.
MoveParam
=
new
InOutParam
();
IB03_LineStart
();
//判断是哪个工位有料串
IB05_StopUp
();
}
}
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
MoveInfo
.
NewMove
(
MoveType
.
InStore
);
MoveInfo
.
NewMove
(
MoveType
.
InStore
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
IB04_LineWait
();
IB02_BatchAxisToP1
();
}
}
else
else
{
{
...
@@ -90,6 +94,22 @@ namespace OnlineStore.DeviceLibrary
...
@@ -90,6 +94,22 @@ namespace OnlineStore.DeviceLibrary
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
StopDown
();
StopDown
();
}
}
private
void
IB03_LineStart
()
{
WorkLog
(
"料串入料 :入口有料串,转动料串到位"
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB03_LineStart
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Config
.
IO_LineIn_Check
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Config
.
IO_LineEnd_Check
,
IO_VALUE
.
HIGH
));
}
private
void
IB04_LineWait
()
{
WorkLog
(
"料串入料 :料串已到位,在转动3秒"
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineWait
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
Config
.
IO_LineEnd_Check
,
IO_VALUE
.
HIGH
));
}
private
void
IB07_AxisUpMove
()
private
void
IB07_AxisUpMove
()
{
{
MoveInfo
.
ShelfNoTray
=
false
;
MoveInfo
.
ShelfNoTray
=
false
;
...
@@ -119,24 +139,31 @@ namespace OnlineStore.DeviceLibrary
...
@@ -119,24 +139,31 @@ namespace OnlineStore.DeviceLibrary
}
}
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB02_BatchAxisToP1
))
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB02_BatchAxisToP1
))
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
//MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
WorkLog
(
"料串入料 :开始转动链条"
);
//WorkLog("料串入料 :开始转动链条");
LineRun
(
MoveInfo
);
//LineRun(MoveInfo);
//等待指定时间
////等待指定时间
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
IB03_LineStart
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB0
4
_LineStart
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB0
3
_LineStart
))
{
{
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Robot
.
IOValue
(
Config
.
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
//if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH))
//{
// IB05_StopUp();
//}
//else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
IB05_StopUp
();
//MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
//WorkLog(" 入口检测到料串,流水线转动 6000,等待料串完全进入轨道");
//LineRun(MoveInfo);
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
IB03_LineStart
();
}
}
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
else
if
(
Robot
.
IOValue
(
Config
.
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
IB04_LineWait
();
WorkLog
(
" 入口检测到料串,流水线转动 6000,等待料串完全进入轨道"
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
6000
));
}
}
else
else
{
{
...
@@ -144,6 +171,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -144,6 +171,9 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
LogUtil
.
info
(
" 未检测到料串,入料结束"
);
LogUtil
.
info
(
" 未检测到料串,入料结束"
);
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB04_LineWait
))
{
IB05_StopUp
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB06_WaitTime
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB06_WaitTime
))
{
{
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
d984753
此文件的差异被折叠,
点击展开。
source/XLRStoreClient/inputForm/FrmBatchMove.cs
查看文件 @
d984753
...
@@ -49,7 +49,7 @@ namespace OnlineStore.XLRStore
...
@@ -49,7 +49,7 @@ namespace OnlineStore.XLRStore
}
}
else
else
{
{
btnReset
.
Enabled
=
fals
e
;
btnReset
.
Enabled
=
tru
e
;
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
...
@@ -97,7 +97,7 @@ namespace OnlineStore.XLRStore
...
@@ -97,7 +97,7 @@ namespace OnlineStore.XLRStore
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
{
moveBean
.
Reset
();
moveBean
.
Reset
(
true
);
LogUtil
.
info
(
moveBean
.
Name
+
"点击:"
+
btnReset
.
Text
);
LogUtil
.
info
(
moveBean
.
Name
+
"点击:"
+
btnReset
.
Text
);
}
}
...
...
source/XLRStoreClient/记录.txt
查看文件 @
d984753
...
@@ -6,3 +6,12 @@ AA:第3和第4位存储机构A面或B面,AA或者BB
...
@@ -6,3 +6,12 @@ AA:第3和第4位存储机构A面或B面,AA或者BB
04:第7和第8位表示抽屉在第几列
04:第7和第8位表示抽屉在第几列
01:第9和第10位表示在抽屉中的第几行
01:第9和第10位表示在抽屉中的第几行
02:第11和第12位表示在抽屉中的第几列
02:第11和第12位表示在抽屉中的第几列
批量轴回原点
如果旋转轴在暂存区,且在下暂存区,升降轴先到高位
旋转轴回待机点P1
升降轴回P1
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论