Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 5cda5bea
由
LN
编写于
2020-09-07 18:31:03 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
空料架进入时 等待O_ELine_InCheck检测到料架转动10分钟
1 个父辈
38e092d1
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
30 行增加
和
28 行删除
RC1266-AutoCountMachine/source/DeviceLibrary/bean/BatchMoveBean_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Shelf.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/BatchMoveBean_Partial.cs
查看文件 @
5cda5be
...
@@ -14,16 +14,16 @@ namespace OnlineStore.DeviceLibrary
...
@@ -14,16 +14,16 @@ namespace OnlineStore.DeviceLibrary
{
{
#
region
料串入料处理
#
region
料串入料处理
internal
string
CurrShelfId
=
""
;
internal
string
CurrShelfId
=
""
;
private
List
<
string
>
LastCodeList
=
new
List
<
string
>();
private
List
<
string
>
LastCodeList
=
new
List
<
string
>();
private
List
<
string
>
NextCodeList
=
new
List
<
string
>();
private
List
<
string
>
NextCodeList
=
new
List
<
string
>();
public
bool
StartWorking
(
WorkParam
param
)
public
bool
StartWorking
(
WorkParam
param
)
{
{
if
(
ProcessShelfOut
||
ProcessShelfEnter
)
if
(
ProcessShelfOut
||
ProcessShelfEnter
)
{
{
return
false
;
return
false
;
}
}
if
(!
Robot
.
CanStartWork
())
if
(!
Robot
.
CanStartWork
())
{
{
...
@@ -178,15 +178,15 @@ namespace OnlineStore.DeviceLibrary
...
@@ -178,15 +178,15 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB09_ScanCode
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB09_ScanCode
))
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB10_ScanOK
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB10_ScanOK
);
MoveInfo
.
MoveParam
.
WareCode
=
CodeManager
.
GetValidCode
(
LastCodeList
);
MoveInfo
.
MoveParam
.
WareCode
=
CodeManager
.
GetValidCode
(
LastCodeList
);
WorkLog
(
"料串入料 :扫码结束【"
+
MoveInfo
.
MoveParam
.
WareCode
+
"】,等待取料机构来取料"
);
WorkLog
(
"料串入料 :扫码结束【"
+
MoveInfo
.
MoveParam
.
WareCode
+
"】,等待取料机构来取料"
);
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB11_TrayLeave
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB11_TrayLeave
))
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB12_BatchAxisToP3
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB12_BatchAxisToP3
);
WorkLog
(
"料串入料 :料盘已拿走,批量轴到P3,测盘高 "
);
WorkLog
(
"料串入料 :料盘已拿走,批量轴到P3,测盘高 "
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
BatchAxisToP3
(
);
BatchAxisToP3
();
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB12_BatchAxisToP3
))
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
IB12_BatchAxisToP3
))
{
{
...
@@ -276,9 +276,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -276,9 +276,9 @@ namespace OnlineStore.DeviceLibrary
try
try
{
{
Task
<
List
<
string
>>
scanTask
=
Task
.
Factory
.
StartNew
(
delegate
Task
<
List
<
string
>>
scanTask
=
Task
.
Factory
.
StartNew
(
delegate
{
{
Robot
.
IOMove
(
IO_Type
.
Camera_Led
,
IO_VALUE
.
HIGH
);
Robot
.
IOMove
(
IO_Type
.
Camera_Led
,
IO_VALUE
.
HIGH
);
NextCodeList
=
CodeManager
.
CameraScan
(
Name
,
CameraName
);
NextCodeList
=
CodeManager
.
CameraScan
(
Name
,
CameraName
);
if
(
NextCodeList
.
Count
<=
0
)
if
(
NextCodeList
.
Count
<=
0
)
{
{
NextCodeList
=
CodeManager
.
CameraScan
(
Name
,
CameraName
);
NextCodeList
=
CodeManager
.
CameraScan
(
Name
,
CameraName
);
...
@@ -362,7 +362,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -362,7 +362,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB07_AxisUpMove
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB07_AxisUpMove
);
WorkLog
(
"料串入料 :CheckHasTray:上料轴开始慢速上升到P3点,等待检测到料盘"
);
WorkLog
(
"料串入料 :CheckHasTray:上料轴开始慢速上升到P3点,等待检测到料盘"
);
MoveInfo
.
ShelfNoTray
=
false
;
MoveInfo
.
ShelfNoTray
=
false
;
BatchAxisToP3
(
);
BatchAxisToP3
();
return
;
return
;
}
}
}
}
...
@@ -371,19 +371,19 @@ namespace OnlineStore.DeviceLibrary
...
@@ -371,19 +371,19 @@ namespace OnlineStore.DeviceLibrary
SendShelfOut
(
" 未检测到料盘 "
);
SendShelfOut
(
" 未检测到料盘 "
);
}
}
}
}
private
void
SendShelfOut
(
string
msg
=
""
)
private
void
SendShelfOut
(
string
msg
=
""
)
{
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB21_BatchToP1
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
IB21_BatchToP1
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
500
));
WorkLog
(
"送出料串 :"
+
msg
+
",提升伺服到P1点"
);
WorkLog
(
"送出料串 :"
+
msg
+
",提升伺服到P1点"
);
BatchAxis
.
SuddenStop
(
true
);
BatchAxis
.
SuddenStop
(
true
);
BatchAxis
.
AbsMove
(
MoveInfo
,
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
BatchAxis
.
AbsMove
(
MoveInfo
,
BatchAxisP1
,
Robot
.
Config
.
BatchAxis_P1Speed
);
}
}
private
void
BatchAxisToP3
(
)
private
void
BatchAxisToP3
()
{
{
int
targetP3
=
BatchAxisP3
;
int
targetP3
=
BatchAxisP3
;
int
targetSpeed
=
Robot
.
Config
.
BatchAxis_P3Speed
;
int
targetSpeed
=
Robot
.
Config
.
BatchAxis_P3Speed
;
MoveInfo
.
TimeOutSeconds
=
200
;
MoveInfo
.
TimeOutSeconds
=
200
;
MoveInfo
.
CanWhileCount
=
0
;
MoveInfo
.
CanWhileCount
=
0
;
// 需要增加定时器,获取验证信号并停止伺服
// 需要增加定时器,获取验证信号并停止伺服
...
@@ -392,7 +392,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -392,7 +392,7 @@ namespace OnlineStore.DeviceLibrary
BatchAxis
.
Config
.
TargetPosition
=
targetP3
;
BatchAxis
.
Config
.
TargetPosition
=
targetP3
;
BatchAxis
.
AbsMove
(
null
,
targetP3
,
targetSpeed
);
BatchAxis
.
AbsMove
(
null
,
targetP3
,
targetSpeed
);
//开始检测信号
//开始检测信号
BatchAxis
.
BatchAxisStartCheck
(
IO_AxisTrayCheck
,
IO_VALUE
.
HIGH
);
BatchAxis
.
BatchAxisStartCheck
(
IO_AxisTrayCheck
,
IO_VALUE
.
HIGH
);
}
}
#
endregion
#
endregion
...
@@ -469,7 +469,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -469,7 +469,7 @@ namespace OnlineStore.DeviceLibrary
{
{
Task
.
Factory
.
StartNew
(
delegate
Task
.
Factory
.
StartNew
(
delegate
{
{
string
logName
=
Name
+
"料串 "
+
rfid
+
" [AGV->"
+
AgvName
+
"] "
;
string
logName
=
Name
+
"料串 "
+
rfid
+
" [AGV->"
+
AgvName
+
"] "
;
try
try
{
{
if
(
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
LOW
)
&&
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
LOW
))
if
(
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
LOW
)
&&
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
LOW
))
...
@@ -483,7 +483,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -483,7 +483,7 @@ namespace OnlineStore.DeviceLibrary
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
logName
+
" 等待 IO_LineIn_Check=High 超时, 等待 IO_LineEnd_Check 信号"
);
LogUtil
.
error
(
logName
+
" 等待 IO_LineIn_Check=High 超时, 等待 IO_LineEnd_Check 信号"
);
}
}
else
else
{
{
...
@@ -493,7 +493,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -493,7 +493,7 @@ namespace OnlineStore.DeviceLibrary
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
logName
+
" 等待 IO_LineEnd_Check=High 超时,等待3000后停止转动,发送 FinishEnter"
);
LogUtil
.
error
(
logName
+
" 等待 IO_LineEnd_Check=High 超时,等待3000后停止转动,发送 FinishEnter"
);
}
}
else
else
{
{
...
@@ -535,15 +535,15 @@ namespace OnlineStore.DeviceLibrary
...
@@ -535,15 +535,15 @@ namespace OnlineStore.DeviceLibrary
}
}
});
});
}
}
internal
void
ShelfOutProcess
(
string
nodeId
,
string
rfid
)
internal
void
ShelfOutProcess
(
string
nodeId
,
string
rfid
)
{
{
//AGV已到达,将料串送入AGV中
//AGV已到达,将料串送入AGV中
Task
.
Factory
.
StartNew
(
delegate
Task
.
Factory
.
StartNew
(
delegate
{
{
string
logName
=
Name
+
"料串"
+
rfid
+
"["
+
AgvName
+
"->AGV ] "
;
string
logName
=
Name
+
"料串"
+
rfid
+
"["
+
AgvName
+
"->AGV ] "
;
try
try
{
{
AgvClient
.
SetStatus
(
AgvName
,
CurrShelfId
,
ClientAction
.
None
,
ClientLevel
.
High
,
true
);
AgvClient
.
SetStatus
(
AgvName
,
CurrShelfId
,
ClientAction
.
None
,
ClientLevel
.
High
,
true
);
if
(
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
)
||
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
Robot
.
IOValue
(
IO_LineIn_Check
).
Equals
(
IO_VALUE
.
HIGH
)
||
Robot
.
IOValue
(
IO_LineEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
...
@@ -552,7 +552,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -552,7 +552,7 @@ namespace OnlineStore.DeviceLibrary
bool
result
=
Robot
.
WaitIo
(
IO_LineIn_Check
,
IO_VALUE
.
LOW
,
60000
);
bool
result
=
Robot
.
WaitIo
(
IO_LineIn_Check
,
IO_VALUE
.
LOW
,
60000
);
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
logName
+
" 等待 IO_LineIn_Check=LOW超时,等待8000后停止转动,发送FinishLeave"
);
LogUtil
.
error
(
logName
+
" 等待 IO_LineIn_Check=LOW超时,等待8000后停止转动,发送FinishLeave"
);
}
}
else
else
{
{
...
@@ -590,9 +590,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -590,9 +590,9 @@ namespace OnlineStore.DeviceLibrary
}
}
});
});
}
}
#
endregion
#
endregion
protected
void
WorkLog
(
string
msg
)
protected
void
WorkLog
(
string
msg
)
{
{
LogUtil
.
info
(
Name
+
" ["
+
MoveInfo
.
MoveStep
+
"]"
+
msg
);
LogUtil
.
info
(
Name
+
" ["
+
MoveInfo
.
MoveStep
+
"]"
+
msg
);
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Shelf.cs
查看文件 @
5cda5be
...
@@ -419,11 +419,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -419,11 +419,13 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
O_ELine_Run
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
O_ELine_Run
,
IO_VALUE
.
HIGH
);
//等待进料检测信号
//等待进料检测信号
bool
result
=
WaitIo
(
IO_Type
.
O_ELine_InCheck
,
IO_VALUE
.
HIGH
,
60000
);
bool
result
=
WaitIo
(
IO_Type
.
O_ELine_InCheck
,
IO_VALUE
.
HIGH
,
60000
0
,
logName
+
"等待O_ELine_InCheck检测到料架"
);
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
logName
+
" 等待 O_ELine_InCheck=High 超时, 等待 5000 后停止 O_ELine_Run"
);
WarnMsg
=
logName
+
"等待O_ELine_InCheck检测到料架 超时"
;
LogUtil
.
error
(
WarnMsg
);
LogUtil
.
error
(
logName
+
" 等待 O_ELine_InCheck=High 超时, 等待 5000 后停止 O_ELine_Run"
);
}
}
else
else
{
{
...
@@ -484,7 +486,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -484,7 +486,7 @@ namespace OnlineStore.DeviceLibrary
bool
result
=
WaitIo
(
IO_Type
.
O_WLine_OutCheck
,
IO_VALUE
.
LOW
,
60000
);
bool
result
=
WaitIo
(
IO_Type
.
O_WLine_OutCheck
,
IO_VALUE
.
LOW
,
60000
);
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
logName
+
" 等待 O_WLine_OutCheck=LOW超时,等待8000后停止转动 "
);
LogUtil
.
error
(
logName
+
" 等待 O_WLine_OutCheck=LOW超时,等待8000后停止转动 "
);
}
}
else
else
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论