Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit d9847538
由
LN
编写于
2021-08-20 13:03:09 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
上料机构修改
1 个父辈
f8dca7a7
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
239 行增加
和
70 行删除
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
int
p
=
AxisManager
.
instance
.
GetActualtPosition
(
Config
.
DeviceName
,
Config
.
GetAxisValue
());
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
chaz
=
targetP
-
currp
;
if
(
Math
.
Abs
(
chaz
)
<
Config
.
CanErrorCount
Max
)
if
(
Math
.
Abs
(
chaz
)
<
canError
Max
)
{
return
true
;
}
...
...
source/DeviceLibrary/deviceLibrary/IO/IOManager.cs
查看文件 @
d984753
...
...
@@ -149,6 +149,16 @@ namespace OnlineStore.DeviceLibrary
}
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
)
{
ConfigIO
configIo
=
null
;
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
d984753
...
...
@@ -816,9 +816,14 @@ namespace OnlineStore.DeviceLibrary
IB02_BatchAxisToP1
,
/// <summary>
/// 料串入料:
链条开始转动
/// 料串入料:
入口有料架,转动到料架到位
/// </summary>
IB04_LineStart
,
IB03_LineStart
,
/// <summary>
/// 料串入料:料架已到位,在转动3秒
/// </summary>
IB04_LineWait
,
/// <summary>
/// 料串入料:阻挡气缸上升
...
...
source/DeviceLibrary/storeBean/EquipBase.cs
查看文件 @
d984753
...
...
@@ -283,7 +283,7 @@ namespace OnlineStore.DeviceLibrary
}
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
);
if
(!
wait
.
IsEnd
)
...
...
source/DeviceLibrary/storeBean/XLRStoreBean.cs
查看文件 @
d984753
...
...
@@ -398,7 +398,7 @@ namespace OnlineStore.DeviceLibrary
NotOkMsg
=
" ["
+
wait
.
ToStr
()
+
"] "
;
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
);
if
(!
wait
.
IsEnd
)
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean.cs
查看文件 @
d984753
...
...
@@ -57,7 +57,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
=
new
DeviceMoveInfo
(
Name
);
}
internal
void
TimerProcess
()
public
void
TimerProcess
()
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
{
...
...
@@ -70,6 +70,10 @@ namespace OnlineStore.DeviceLibrary
{
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
))
...
...
@@ -115,6 +119,15 @@ namespace OnlineStore.DeviceLibrary
{
StopMove
();
}
string
msg
=
""
;
if
(!
BatchAxis
.
Open
(
true
,
out
msg
))
{
BatchAxis
.
SuddenStop
();
BatchAxis
.
ServoOff
();
WarnMsg
=
Name
+
"复位失败:批量轴打开失败:"
+
msg
;
return
false
;
}
WarnMsg
=
""
;
alarmType
=
AlarmType
.
None
;
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
...
...
@@ -122,6 +135,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
100
));
WorkLog
(
"开始复位,定位气缸下降"
);
StopDown
(
MoveInfo
);
return
true
;
}
else
{
...
...
@@ -149,20 +163,20 @@ 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
{
//
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
));
}
//
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IBR02_LineRun
))
{
...
...
@@ -327,6 +341,10 @@ namespace OnlineStore.DeviceLibrary
//当等待超过一分钟时,需要打印提示
TimeSpan
span
=
DateTime
.
Now
-
moveInfo
.
LastSetpTime
;
if
(
span
.
TotalMilliseconds
<
300
)
{
return
;
}
string
NotOkMsg
=
""
;
bool
isOk
=
!
moveInfo
.
OneWaitCanEndStep
;
foreach
(
WaitResultInfo
wait
in
list
)
...
...
@@ -363,7 +381,7 @@ namespace OnlineStore.DeviceLibrary
}
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
);
if
(!
wait
.
IsEnd
&&
(!
moveInfo
.
IsStep
(
StepEnum
.
IB23_ShelfOut
)))
...
...
source/DeviceLibrary/storeBean/inputBean/BatchMoveBean_Partial.cs
查看文件 @
d984753
...
...
@@ -40,19 +40,23 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
Name
+
"StartInstore 失败,料串"
+
CurrShelf
.
ToStr
()
+
"需要离开,NeedLeave:"
+
Config
.
AgvName
+
","
+
CurrShelf
.
ShelfRfid
+
",agvcallresult:"
+
agvcallresult
.
ToString
());
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
.
MoveParam
=
new
InOutParam
();
//判断是哪个工位有料串
IB05_StopUp
();
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
.
NewMove
(
MoveType
.
InStore
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
IB02_BatchAxisToP1
();
IB04_LineWait
();
}
else
{
...
...
@@ -90,6 +94,22 @@ namespace OnlineStore.DeviceLibrary
BatchAxis
.
AbsMove
(
MoveInfo
,
Config
.
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
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
()
{
MoveInfo
.
ShelfNoTray
=
false
;
...
...
@@ -119,24 +139,31 @@ namespace OnlineStore.DeviceLibrary
}
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB02_BatchAxisToP1
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
WorkLog
(
"料串入料 :开始转动链条"
);
LineRun
(
MoveInfo
);
//等待指定时间
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
//MoveInfo.NextMoveStep(StepEnum.IB03_LineStart);
//WorkLog("料串入料 :开始转动链条");
//LineRun(MoveInfo);
////等待指定时间
//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
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB04_LineStart
);
WorkLog
(
" 入口检测到料串,流水线转动 6000,等待料串完全进入轨道"
);
LineRun
(
MoveInfo
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
6000
));
IB04_LineWait
();
}
else
{
...
...
@@ -144,6 +171,9 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
EndMove
();
LogUtil
.
info
(
" 未检测到料串,入料结束"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB04_LineWait
))
{
IB05_StopUp
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB06_WaitTime
))
{
...
...
source/DeviceLibrary/storeBean/inputBean/InputEquip.cs
查看文件 @
d984753
...
...
@@ -40,8 +40,8 @@ namespace OnlineStore.DeviceLibrary
ledProcessTimer
.
Elapsed
+=
LedProcess
;
IoCheckTimer
.
Elapsed
+=
IoCheckTimerProcess
;
MiddleAxis
=
new
AxisBean
(
config
.
TakeAxis_Middle
,
Name
,
tru
e
);
UpdownAxis
=
new
AxisBean
(
config
.
TakeAxis_Updown
,
Name
,
tru
e
);
MiddleAxis
=
new
AxisBean
(
config
.
TakeAxis_Middle
,
Name
,
fals
e
);
UpdownAxis
=
new
AxisBean
(
config
.
TakeAxis_Updown
,
Name
,
fals
e
);
BatchAxis_A
=
new
AxisBean
(
config
.
BatchAxis_A
,
Name
,
true
);
BatchAxis_B
=
new
AxisBean
(
config
.
BatchAxis_B
,
Name
,
true
);
...
...
@@ -78,6 +78,22 @@ namespace OnlineStore.DeviceLibrary
runStatus
=
RunStatus
.
HomeMoving
;
MoveInfo
.
NewMove
(
MoveType
.
RHome
);
if
(!
BatchMove_A
.
Reset
())
{
runStatus
=
RunStatus
.
Wait
;
MoveInfo
.
EndMove
();
SetWarnMsg
(
"启动失败:A料口启动失败"
);
LogUtil
.
error
(
"复位失败:A料口启动失败"
);
return
false
;
}
if
(!
BatchMove_B
.
Reset
())
{
runStatus
=
RunStatus
.
Wait
;
MoveInfo
.
EndMove
();
SetWarnMsg
(
"启动失败:A料口启动失败"
);
LogUtil
.
error
(
"复位失败:B料口启动失败"
);
return
false
;
}
StartReset
();
SetAllTimer
(
true
);
...
...
@@ -98,6 +114,20 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
"Reset 开始重置 "
);
runStatus
=
RunStatus
.
Reset
;
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
if
(!
BatchMove_A
.
Reset
())
{
SetWarnMsg
(
"复位失败:A料口复位失败"
);
MoveInfo
.
EndMove
();
LogUtil
.
error
(
"复位失败:A料口复位失败"
);
return
false
;
}
if
(!
BatchMove_B
.
Reset
())
{
SetWarnMsg
(
"复位失败:B料口复位失败"
);
MoveInfo
.
EndMove
();
LogUtil
.
error
(
"复位失败:B料口复位失败"
);
return
false
;
}
StartReset
();
SetAllTimer
(
true
);
return
true
;
...
...
@@ -116,8 +146,6 @@ namespace OnlineStore.DeviceLibrary
isNoAirpressure_Check
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR01_Wait
);
BatchMove_A
.
Reset
();
BatchMove_B
.
Reset
();
LogInfo
(
$
"复位 {MoveInfo.SLog} :批量轴开始复位"
);
}
...
...
@@ -138,69 +166,116 @@ namespace OnlineStore.DeviceLibrary
// 1,处于A,B,NG料口是,可以直接回取料升降轴。
// 2,处于A, B两个暂存区时,升降轴先运动到该暂存区的取放料高点,旋转轴再回原点或待机点。
//验证旋转轴位置 TODO
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P4_AUpper
))
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);
//}
//旋转轴在A暂存区
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P4_AUpper
)
||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P7_AUnder
))
{
//如果升降轴<下方高点
if
(
updownP
<
Config
.
Updown_P6_AUnderH
+
10000
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A上暂存区 {Config.Middle_P4_AUpper},升降轴先到P4:{Config.Updown_P4_AUpp
erH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P4_AUpperH
,
Config
.
Updown_P4
_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P6_AUnd
erH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P6_AUnderH
,
Config
.
Updown_P6
_Speed
);
}
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P7_AUnder
))
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位{MoveInfo.SLog}:当前旋转轴在 A下暂存区 {Config.Middle_P7_AUnder},升降轴先到P6:{Config.Updown_P6_AUnderH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P6_AUnderH
,
Config
.
Updown_P6_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
}
}
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P5_BUpper
))
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P5_BUpper
)||
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P8_BUnder
))
{
if
(
updownP
<
Config
.
Updown_P12_BUnderH
+
10000
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位{MoveInfo.SLog}:当前旋转轴在 B上暂存区 {Config.Middle_P5_BUpper},升降轴先到P10:{Config.Updown_P10_BUpp
erH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P10_BUpperH
,
Config
.
Updown_P10_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P12_BUnd
erH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P12_BUnderH
,
Config
.
Updown_P12_BUnderH
);
}
else
if
(
MiddleAxis
.
IsInPosition
(
Config
.
Middle_P8_BUnder
))
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR02_UpdownUpMove
);
LogInfo
(
$
"复位{MoveInfo.SLog}:当前旋转轴在 B下暂存区 {Config.Middle_P8_BUnder},升降轴先到P12{Config.Updown_P12_BUnderH}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P12_BUnderH
,
Config
.
Updown_P12_Speed
);
LogInfo
(
$
"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
}
}
else
{
if
(
MiddleAxis
.
IsNeedHome
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR03_MiddleHome
);
LogInfo
(
"复位{MoveInfo.SLog}:旋转轴回原点"
);
LogInfo
(
$
"复位{MoveInfo.SLog}:旋转轴回原点"
);
MiddleAxis
.
HomeMove
(
MoveInfo
);
}
else
{
IR04_MiddleToP1
();
}
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IR02_UpdownUpMove
))
{
if
(
MiddleAxis
.
IsNeedHome
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR03_MiddleHome
);
LogInfo
(
$
"复位{MoveInfo.SLog}:旋转轴回原点"
);
MiddleAxis
.
HomeMove
(
MoveInfo
);
}
else
{
IR04_MiddleToP1
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IR03_MiddleHome
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR04_MiddleToP1
);
LogInfo
(
$
"复位{MoveInfo.SLog}:旋转轴到待机点:"
+
Config
.
Middle_P1
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
Middle_P1
,
Config
.
Middle_P1_Speed
);
IR04_MiddleToP1
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IR04_MiddleToP1
))
{
if
(
UpdownAxis
.
IsNeedHome
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR05_UpdownHome
);
LogInfo
(
$
"复位{MoveInfo.SLog}:升降轴原点返回"
);
UpdownAxis
.
HomeMove
(
MoveInfo
);
}
else
{
IR06_UpdownToP1
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IR05_UpdownHome
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR06_UpdownToP1
);
LogInfo
(
$
"复位{MoveInfo.SLog}:升降轴到P1:"
+
Config
.
Updown_P1
+
",夹爪原点返回"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
if
(
Config
.
UseClampJaw
.
Equals
(
1
))
{
ClampJaw
.
GoHome
(
MoveInfo
);
}
IR06_UpdownToP1
();
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IR06_UpdownToP1
))
{
...
...
@@ -242,6 +317,24 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
IR06_UpdownToP1
()
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR06_UpdownToP1
);
LogInfo
(
$
"复位{MoveInfo.SLog}:升降轴到P1:"
+
Config
.
Updown_P1
+
",夹爪原点返回"
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
if
(
Config
.
UseClampJaw
.
Equals
(
1
))
{
ClampJaw
.
GoHome
(
MoveInfo
);
}
}
private
void
IR04_MiddleToP1
()
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IR04_MiddleToP1
);
LogInfo
(
$
"复位{MoveInfo.SLog}:旋转轴到待机点:"
+
Config
.
Middle_P1
);
MiddleAxis
.
AbsMove
(
MoveInfo
,
Config
.
Middle_P1
,
Config
.
Middle_P1_Speed
);
}
internal
override
void
StopMove
()
{
//StopMove时设置状态为none
...
...
source/XLRStoreClient/inputForm/FrmBatchMove.cs
查看文件 @
d984753
...
...
@@ -49,7 +49,7 @@ namespace OnlineStore.XLRStore
}
else
{
btnReset
.
Enabled
=
fals
e
;
btnReset
.
Enabled
=
tru
e
;
}
}
catch
(
Exception
ex
)
...
...
@@ -97,7 +97,7 @@ namespace OnlineStore.XLRStore
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
moveBean
.
Reset
();
moveBean
.
Reset
(
true
);
LogUtil
.
info
(
moveBean
.
Name
+
"点击:"
+
btnReset
.
Text
);
}
...
...
source/XLRStoreClient/记录.txt
查看文件 @
d984753
...
...
@@ -6,3 +6,12 @@ AA:第3和第4位存储机构A面或B面,AA或者BB
04:第7和第8位表示抽屉在第几列
01:第9和第10位表示在抽屉中的第几行
02:第11和第12位表示在抽屉中的第几列
批量轴回原点
如果旋转轴在暂存区,且在下暂存区,升降轴先到高位
旋转轴回待机点P1
升降轴回P1
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论