Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-ACPackingStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 992e9594
由
张东亮
编写于
2023-04-03 12:52:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
有NG料时上报到服务器
1 个父辈
aea91a02
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
76 行增加
和
16 行删除
source/Common/util/HttpHelper.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_InStore.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_OutStore.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_ScanCode.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_Shelf.cs
source/DeviceLibrary/PackingStore/StoreManager.cs
source/Common/util/HttpHelper.cs
查看文件 @
992e959
...
...
@@ -166,7 +166,7 @@ namespace OnlineStore.Common
}
public
static
string
Post
(
string
url
,
string
paramData
,
int
timeOut
=
5
000
)
public
static
string
Post
(
string
url
,
string
paramData
,
int
timeOut
=
10
000
)
{
bool
IsTimeOut
=
false
;
return
Post
(
url
,
paramData
,
Encoding
.
UTF8
,
timeOut
,
out
IsTimeOut
);
...
...
source/DeviceLibrary/PackingStore/AC_BOX_Bean_InStore.cs
查看文件 @
992e959
...
...
@@ -17,10 +17,10 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入库NG的料架位置
/// </summary>
List
<
string
>
inNGShelfPos
=
new
List
<
string
>();
void
addNGShelfPos
(
string
shelfPos
)
Dictionary
<
string
,
bool
>
inNGShelfPos
=
new
Dictionary
<
string
,
bool
>();
void
addNGShelfPos
(
string
shelfPos
,
bool
ok
=
false
)
{
inNGShelfPos
.
Add
(
shelfPos
)
;
inNGShelfPos
[
shelfPos
]
=
ok
;
}
/// <summary>
/// 清空料架NG位置信息
...
...
@@ -32,7 +32,12 @@ namespace OnlineStore.DeviceLibrary
}
string
getNGShelfPos
()
{
return
string
.
Join
(
","
,
inNGShelfPos
);
StringBuilder
sb
=
new
StringBuilder
();
foreach
(
var
item
in
inNGShelfPos
)
{
sb
.
Append
(
$
"{item.Key}={item.Value},"
);
}
return
sb
.
ToString
();
}
/// <summary>
/// 是否是入库NG料架
...
...
@@ -40,7 +45,7 @@ namespace OnlineStore.DeviceLibrary
/// <returns></returns>
bool
isNGShelf
()
{
return
inNGShelfPos
.
Count
>
0
;
return
!
inNGShelfPos
.
Values
.
Contains
(
true
)
;
}
/// <summary>
/// 清空最后一盘的信息
...
...
@@ -99,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
if
(!
result
)
//获取库位失败
{
MoveInfo
.
MoveParam
.
PosID
=
""
;
StartSendTray
(
"锁定库位:获取入库库位失败"
);
StartSendTray
(
"锁定库位:获取入库库位失败"
,
false
);
}
else
{
...
...
@@ -118,9 +123,9 @@ namespace OnlineStore.DeviceLibrary
/// 入库失败料盘处理
/// </summary>
/// <param name="str"></param>
private
void
StartSendTray
(
string
str
=
"扫码失败"
)
private
void
StartSendTray
(
string
str
=
"扫码失败"
,
bool
ok
=
false
)
{
StartMoveTrayBack
(
str
);
StartMoveTrayBack
(
str
,
ok
);
//MoveInfo.NextMoveStep(StoreMoveStep.BI_71_ToNGDoor);
//InOutStoreLog("NG料,升降轴到NG门口高点P12,旋转轴到NG门口P11");
////if(MoveInfo.IsShelfLocked)//锁定料架,扫码失败则清除当前位置
...
...
@@ -134,10 +139,10 @@ namespace OnlineStore.DeviceLibrary
/// 将料盘送回原位
/// </summary>
/// <param name="str"></param>
private
void
StartMoveTrayBack
(
string
str
=
"料盘不属于该仓库"
)
private
void
StartMoveTrayBack
(
string
str
=
"料盘不属于该仓库"
,
bool
ok
=
false
)
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
SO_10_ToShelfPosition
);
addNGShelfPos
(
MoveInfo
.
MoveParam
.
CurShelfPosID
);
addNGShelfPos
(
MoveInfo
.
MoveParam
.
CurShelfPosID
,
ok
);
InOutStoreLog
(
$
"送出料盘 :{str} ,走到料架位置,旋转轴至P101,升降轴至P102"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
UpDown_HP102
,
Config
.
UpDownAxis_P102_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
MoveInfo
.
MoveParam
.
MoveP
.
Middle_P101
,
Config
.
MiddleAxis_P101_Speed
);
...
...
@@ -362,7 +367,11 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_29_InoutBackP1
))
{
if
(
LastScanCodes
.
Count
<=
0
)
if
(
LastScanCodes
.
Count
<=
0
&&
LastWidth
.
Equals
(
0
)
&&
LastHeight
.
Equals
(
8
))
{
StartSendTray
(
"未检测到料盘"
,
true
);
}
else
if
(
LastScanCodes
.
Count
<=
0
)
{
StartSendTray
();
}
...
...
@@ -377,12 +386,12 @@ namespace OnlineStore.DeviceLibrary
if
(
codeResult
==
CodeResultType
.
NotPosForPutIn
)
//库位不在该料仓,将该料盘放回料架
{
//MoveInfo.MoveParam.PosID = "";
StartMoveTrayBack
(
"此料盘不属于该仓库,放回料架"
);
StartMoveTrayBack
(
"此料盘不属于该仓库,放回料架"
,
true
);
}
else
//无法获取库位信息
{
MoveInfo
.
MoveParam
.
PosID
=
""
;
StartSendTray
(
"获取入库库位失败"
);
StartSendTray
(
"获取入库库位失败"
,
false
);
}
}
else
...
...
source/DeviceLibrary/PackingStore/AC_BOX_Bean_OutStore.cs
查看文件 @
992e959
...
...
@@ -455,6 +455,7 @@ namespace OnlineStore.DeviceLibrary
string
mark
=
GetMarkInfo
();
// string rfid = MoveInfo.MoveParam.rfid;
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_00_ReadyShelf
);
MoveInfo
.
TimeOutSeconds
=
int
.
MaxValue
;
clearNGShelfPos
();
InOutStoreLog
(
"呼叫agv送空料架,NeedEnter["
+
mark
+
"]["
+
MoveInfo
.
MoveParam
.
rfid
+
"],等待agv_Arrive 或有料架,进出轴到P1"
);
InOutBackToP1
(
MoveInfo
.
MoveParam
.
MoveP
.
InOut_P1
);
...
...
source/DeviceLibrary/PackingStore/AC_BOX_Bean_ScanCode.cs
查看文件 @
992e959
...
...
@@ -171,7 +171,10 @@ namespace OnlineStore.DeviceLibrary
//查询该料盘所在料仓以及仓位
StoreManager
.
ResultType
resultType
=
StoreManager
.
GetPosForPutIn
(
Name
,
Config
,
message
,
CurrShelfID
,
rfidLoc
,
out
bool
isLockInfoMatch
);
if
(
resultType
.
Equals
(
CodeResultType
.
Error
))
{
resultType
=
StoreManager
.
GetPosForPutIn
(
Name
,
Config
,
message
,
CurrShelfID
,
rfidLoc
,
out
isLockInfoMatch
);
}
if
(
resultType
==
StoreManager
.
ResultType
.
Error
)
{
codeResultType
=
CodeResultType
.
Error
;
...
...
source/DeviceLibrary/PackingStore/AC_BOX_Bean_Shelf.cs
查看文件 @
992e959
...
...
@@ -280,7 +280,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BS_02_LocatinDown
))
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BS_03_WaitEmptyAgv
);
MoveInfo
.
TimeOutSeconds
=
600
;
MoveInfo
.
TimeOutSeconds
=
int
.
MaxValue
;
//MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(30000));
//等待agv到达
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitAgvAction
((
int
)
ClientAction
.
Arrive
));
...
...
source/DeviceLibrary/PackingStore/StoreManager.cs
查看文件 @
992e959
...
...
@@ -849,6 +849,53 @@ namespace OnlineStore.DeviceLibrary
}
return
false
;
}
private
static
string
Addr_lockAShelfLoc
=
"/service/store/lockAShelfLoc"
;
/// <summary>
/// 锁定包装料架NG架位
/// </summary>
/// <param name="rfid"></param>
/// <param name="rfidLoc"></param>
/// <returns></returns>
public
static
bool
LockAShelfLoc
(
string
deviceName
,
string
rfid
,
int
rfidLoc
)
{
string
msg
=
""
;
try
{
Dictionary
<
string
,
string
>
paramMap
=
new
Dictionary
<
string
,
string
>();
paramMap
.
Add
(
ParamDefine
.
rfid
,
rfid
);
paramMap
.
Add
(
"rfidLoc"
,
rfidLoc
.
ToString
());
string
server
=
GetAddr
(
Addr_lockAShelfLoc
,
paramMap
);
DateTime
startTime
=
DateTime
.
Now
;
LogUtil
.
info
(
"锁定料架rfid="
+
rfid
+
",NG架位rfidLoc="
+
rfidLoc
.
ToString
());
string
resultStr
=
HttpHelper
.
Post
(
server
,
""
);
LogUtil
.
info
(
deviceName
+
" LockAShelfLoc "
+
FormUtil
.
GetSpanStr
(
DateTime
.
Now
-
startTime
)
+
" 【"
+
server
+
"】【"
+
resultStr
+
"】"
);
RfidData
data
=
JsonHelper
.
DeserializeJsonToObject
<
RfidData
>(
resultStr
);
if
(
data
==
null
)
{
msg
=
deviceName
+
" LockAShelfLoc【 "
+
rfid
+
"-"
+
rfidLoc
+
"】 没有收到服务器反馈"
;
LogUtil
.
info
(
msg
);
return
false
;
}
else
if
(
data
.
code
.
Equals
(
0
).
Equals
(
false
))
{
msg
=
deviceName
+
" LockAShelfLoc【 "
+
rfid
+
"-"
+
rfidLoc
+
"】:"
+
data
.
msg
;
LogUtil
.
info
(
msg
);
return
false
;
}
return
true
;
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
deviceName
+
" LockAShelfLoc "
,
ex
);
}
return
false
;
}
}
public
class
AfterPutData
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论