Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 53002f69
由
LN
编写于
2020-04-14 09:57:04 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
入料四送出料串修改
1 个父辈
95d1ccd0
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
58 行增加
和
130 行删除
source/AssemblyLineClient/FrmLineStore.Designer.cs
source/DeviceLibrary/agvClient/AgvClient.cs
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblymanager/SServerManager.cs
source/DeviceLibrary/model/InOutParam.cs
source/AssemblyLineClient/FrmLineStore.Designer.cs
查看文件 @
53002f6
...
...
@@ -205,8 +205,6 @@
// chbAGV
//
this
.
chbAGV
.
AutoSize
=
true
;
this
.
chbAGV
.
Checked
=
true
;
this
.
chbAGV
.
CheckState
=
System
.
Windows
.
Forms
.
CheckState
.
Checked
;
this
.
chbAGV
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
chbAGV
.
Location
=
new
System
.
Drawing
.
Point
(
20
,
87
);
this
.
chbAGV
.
Name
=
"chbAGV"
;
...
...
source/DeviceLibrary/agvClient/AgvClient.cs
查看文件 @
53002f6
...
...
@@ -11,7 +11,7 @@ namespace OnlineStore.DeviceLibrary
{
public
class
AgvClient
{
public
static
bool
CurrCancelState
=
true
;
public
static
bool
CurrCancelState
=
false
;
private
static
string
ServerIp
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
AgvServerIp
);
private
static
Asa
.
AgvClient
agvClient
;
public
static
Dictionary
<
string
,
Asa
.
ClientAction
>
actionMap
=
new
Dictionary
<
string
,
Asa
.
ClientAction
>();
...
...
@@ -33,18 +33,7 @@ namespace OnlineStore.DeviceLibrary
agvClient
.
CloseDoor
+=
AgvClient_CloseDoor
;
}
actionMap
=
new
Dictionary
<
string
,
Asa
.
ClientAction
>();
//foreach (string key in NodeList)
//{
// actionMap.Add(key, Asa.ClientAction.None);
//}
//if (!LineManager.Line.UseAgvClient)
//{
// LogUtil.info("LineManager.Line.UseAgvClient 未启用,直接返回");
// return;
//}
//else
//{
LogUtil
.
info
(
" 开始 agvClient.Connect"
);
//}
agvClient
.
Connect
();
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
53002f6
...
...
@@ -841,7 +841,17 @@ namespace OnlineStore.DeviceLibrary
{
string
msg
=
""
;
int
tLength
=
15
;
msg
+=
"料架:"
+
CurrShelfId
+
"_"
+
LastOutParam
.
rfid
+
"\r\n"
;
string
leftTask
=
""
;
if
(
taskData
!=
null
)
{
leftTask
=
"剩余任务:"
+
taskData
.
ToStr
();
}
msg
+=
"料架:"
+
CurrShelfId
+
" "
+
leftTask
+
"\r\n"
;
if
(
LastOutParam
.
rfid
!=
""
)
{
msg
+=
"出库信息:"
+
LastOutParam
.
ToShortStr
()
+
"\r\n"
;
}
msg
+=
"上个托盘:"
+
preTrayNum
+
"\n"
;
msg
+=
"当前托盘:"
+
currTrayNum
+
"\n"
;
msg
+=
"runS: "
+
runStatus
+
"\n"
;
...
...
@@ -851,7 +861,7 @@ namespace OnlineStore.DeviceLibrary
msg
+=
"MoveS :"
+
MoveInfo
.
SLog
+
"\n"
;
msg
+=
"SMoveT:"
+
SecondMoveInfo
.
MoveType
+
"\n"
;
msg
+=
"SMoveS:"
+
SecondMoveInfo
.
MoveStep
+
"\n"
;
// msg += "" + LastWidth + "X" + LastHeight + "="+ lastcode + "";
return
msg
;
}
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
查看文件 @
53002f6
...
...
@@ -126,6 +126,29 @@ namespace OnlineStore.DeviceLibrary
{
if
(
OutStoreHeight
>=
0
)
{
//判断是否需要送出料架
if
(
CurrShelfId
!=
""
&&
CurrShelfId
!=
"00"
&&
LastOutParam
.
rfid
!=
""
)
{
//重新获取剩余任务
string
msg
=
SServerManager
.
afterPutCut
(
Name
,
CurrShelfId
,
""
,
""
,
0
,
out
taskData
);
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
)
||
taskData
==
null
)
{
LogUtil
.
error
(
Name
+
"定时获取 "
+
LastOutParam
.
ToShortStr
()
+
" 剩余任务出错:"
+
msg
);
}
else
if
(
LastOutParam
.
cutReel
&&
taskData
.
cutTask
<=
0
)
{
MoveInfo
.
NewMove
(
LineMoveType
.
OutStore
,
LastOutParam
);
LogUtil
.
info
(
Name
+
"定时获取到 "
+
LastOutParam
.
ToShortStr
()
+
" 已无剩余任务:"
+
taskData
.
ToStr
());
SendOutShelfOut
(
"分盘料,cutTask="
+
taskData
.
cutTask
+
",需要送出料架"
);
}
else
if
(
LastOutParam
.
urgentReel
&&
taskData
.
urgentTask
<=
0
)
{
MoveInfo
.
NewMove
(
LineMoveType
.
OutStore
,
LastOutParam
);
LogUtil
.
info
(
Name
+
"定时获取到 "
+
LastOutParam
.
ToShortStr
()
+
" 已无剩余任务:"
+
taskData
.
ToStr
());
SendOutShelfOut
(
"紧急料,urgentTask="
+
taskData
.
urgentTask
+
",需要送出料架"
);
}
}
return
;
}
//若定位工位,阻挡工位,有 料架,直接进入定位工位,并上升好位置,若需要出库,直接下降高度即可
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
53002f6
...
...
@@ -964,6 +964,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
EndMove
();
mainTimer
.
Interval
=
300
;
maxSeconds
=
3
;
AgvClient
.
SetCancelState
(
AgvClient
.
CurrCancelState
);
LogUtil
.
info
(
Name
+
"所有移栽模块复位完成,打开流水线,开始运转,定时器改为300,耗时 ["
+
FormUtil
.
GetSpanStr
(
span
)
+
"]"
);
}
else
if
(
span
.
TotalSeconds
>
120
)
...
...
source/DeviceLibrary/assemblymanager/SServerManager.cs
查看文件 @
53002f6
...
...
@@ -177,17 +177,7 @@ namespace OnlineStore.DeviceLibrary
outSize
=
0
;
string
msg
=
""
;
try
{
//string codeStr = "";
//List<string> list = new List<string>();
//foreach (string str in codeList)
//{
// if (list.Contains(str.Trim()) || String.IsNullOrEmpty(str.Trim()))
// {
// continue;
// }
// codeStr = codeStr + str.Trim() + spiltStr;
//}
{
if
(
String
.
IsNullOrEmpty
(
codeStr
))
{
return
msg
=
deviceName
+
"未扫到条码"
;
...
...
@@ -269,50 +259,7 @@ namespace OnlineStore.DeviceLibrary
}
return
msg
;
}
//public static string PutShelfFinished(string deviceName, string barcode, string rfid, string rfidPosId, out ShelfData shelfData)
//{
// string msg = "";
// shelfData = null;
// try
// {
// Dictionary<string, string> paramMap = new Dictionary<string, string>();
// paramMap.Add("barcode", barcode); // 参数: barcode=料盘的条码
// paramMap.Add("rfid", rfid); // rfid = 料架的RFID信息
// paramMap.Add("rfidLoc", rfidPosId); // rfidLoc=料架的架位信息
// // paramMap.Add("robotIndex", "0"); // robotIndex = r机器人编号(非机器人放置时不传此参数), IP为51的机器人为1, 52的机器人为2, 53的机器人为3
// string server = GetAddr(Addr_putShelfFinished, paramMap);
// DateTime startTime = DateTime.Now;
// string resultStr = HttpHelper.Post(server, "");
// LogUtil.info("PutShelfFinished " + FormUtil.GetSpanStr(DateTime.Now - startTime) + " 【" + server + "】【" + resultStr + "】");
// // 返回: {"code": 0, "msg":"ok", "data":{"rfid":"xxx","smallEmpty":0,"bigEmpty":0, "packageEmpty":0,"cutPackageTask":0,"packageTask":10,"cutTask":10, "smallTask":5, "bigTask":5}
// PutFinishedData serverResult = JsonHelper.DeserializeJsonToObject<PutFinishedData>(resultStr);
// // string str = "{"code":0,"msg":"ok","data":{"smallTask":"1","cutPackageTask":"0","packageTask":"0","bigTask":"0","smallEmpty":"0","bigEmpty":"0","packageEmpty":"0","rfid":" - 1 - 1","cutTask":"0"}}";
// //PutShelfFinished 【http://localhost/myproject/rest/api/qisda/device/putShelfFinished?barcode=R008062019120301889&rfid=-1-1&rfidLoc=4】
// //【{"code":0,"msg":"ok","data":{"smallTask":"1","cutPackageTask":"0","packageTask":"0","bigTask":"0","smallEmpty":"0","bigEmpty":"0","packageEmpty":"0","rfid":"-1-1","cutTask":"0"}}】
// if (serverResult == null)
// {
// return msg = deviceName + "PutShelfFinished【 " + barcode + "】【" + rfid + "】【" + rfidPosId + "】没有收到服务器反馈";
// }
// else if (serverResult.code.Equals(0).Equals(false))
// {
// return msg = deviceName + " PutShelfFinished【 " + barcode + "】【" + rfid + "】【" + rfidPosId + "】 :" + serverResult.msg;
// }
// //if (String.IsNullOrEmpty(serverResult.data).Equals(false))
// //{
// // shelfData = JsonHelper.DeserializeJsonToObject<ShelfData>(serverResult.data);
// //}
// shelfData = serverResult.data;
// }
// catch (Exception ex)
// {
// LogUtil.error(deviceName + " ", ex);
// }
// return "";
//}
private
static
string
Addr_clearPutInRfid
=
"/service/store/qisda/clearPutInRfid"
;
public
static
string
clearPutInRfid
(
string
deviceName
,
string
rfid
)
{
...
...
@@ -398,7 +345,14 @@ namespace OnlineStore.DeviceLibrary
string
server
=
GetAddr
(
Addr_afterPutCut
,
paramMap
);
DateTime
startTime
=
DateTime
.
Now
;
string
resultStr
=
HttpHelper
.
Post
(
server
,
""
);
LogUtil
.
info
(
"afterPutCut "
+
FormUtil
.
GetSpanStr
(
DateTime
.
Now
-
startTime
)
+
" 【"
+
server
+
"】【"
+
resultStr
+
"】"
);
if
(
barcode
!=
""
)
{
LogUtil
.
info
(
deviceName
+
"afterPutCut "
+
FormUtil
.
GetSpanStr
(
DateTime
.
Now
-
startTime
)
+
" 【"
+
server
+
"】【"
+
resultStr
+
"】"
);
}
else
{
LogUtil
.
debug
(
deviceName
+
"afterPutCut "
+
FormUtil
.
GetSpanStr
(
DateTime
.
Now
-
startTime
)
+
" 【"
+
server
+
"】【"
+
resultStr
+
"】"
);
}
//> 返回:
//>>` {"code": 0, "msg":"ok", "data":{"cutPackageTask":"0","urgentPackageTask":"20","cutTask":"21","urgentTask":"22"}} `
//>>
...
...
@@ -545,63 +499,12 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public
int
urgentTask
{
get
;
set
;
}
public
string
ToStr
()
{
return
"[分盘料="
+
cutTask
+
"][紧急料="
+
urgentTask
+
"]"
;
}
}
}
//public class PutFinishedData
//{
// public int code { get; set; }
// public string msg { get; set; }
// public ShelfData data { get; set; }
//}
//public class ShelfData
//{
// /// <summary>
// /// rfid: 当前料架的RFID
// /// </summary>
// public string rfid { get; set; }
// /// <summary>
// /// packageEmpty: 当前料架还可放置的包装料的数量(C料架和A料架有值, 其他料架为0)
// /// </summary>
// public int packageEmpty { get; set; }
// /// <summary>
// /// smallEmpty: 当前料架还可放置的小料盘(7x8)的数量(D料架, 其他料架为0)
// /// </summary>
// public int smallEmpty { get; set; }
// /// <summary>
// /// bigEmpty:当前料架还可放置的大料盘的数量(C料架, 其他料架为0)
// /// </summary>
// public int bigEmpty { get; set; }
// /// <summary>
// /// cutPackageTask:还有多少盘分盘的包装料任务(放到A料架上, 转运到分盘区)
// /// </summary>
// public int cutPackageTask { get; set; }
// /// <summary>
// /// packageTask:还有多少盘包装料任务(放到A料架上, 并转运到包装线, 最终到C料架)
// /// </summary>
// public int packageTask { get; set; }
// /// <summary>
// /// cutTask: 还有多少盘分盘料任务(放置到料串B上, 转运到分盘区)
// /// </summary>
// public int cutTask { get; set; }
// /// <summary>
// /// smallTask: 还有多少盘小料任务(放置到双层线的D料架上)
// /// </summary>
// public int smallTask { get; set; }
// /// <summary>
// /// bigTask: 还有多少盘大料任务(放置到C料架上)
// /// </summary>
// public int bigTask { get; set; }
// // rfid: 当前料架的RFID
// // packageEmpty: 当前料架还可放置的包装料的数量(C料架和A料架有值, 其他料架为0)
// // smallEmpty: 当前料架还可放置的小料盘(7x8)的数量(D料架, 其他料架为0)
// // bigEmpty:当前料架还可放置的大料盘的数量(C料架, 其他料架为0)
// // cutPackageTask:还有多少盘分盘的包装料任务(放到A料架上, 转运到分盘区)
// // packageTask:还有多少盘包装料任务(放到A料架上, 并转运到包装线, 最终到C料架)
// // cutTask: 还有多少盘分盘料任务(放置到料串B上, 转运到分盘区)
// // smallTask: 还有多少盘小料任务(放置到双层线的D料架上)
// // bigTask: 还有多少盘大料任务(放置到C料架上)
//}
source/DeviceLibrary/model/InOutParam.cs
查看文件 @
53002f6
...
...
@@ -66,6 +66,10 @@ namespace OnlineStore.DeviceLibrary
return
" ["
+
TrayNumber
+
"] ["
+
WareCode
+
"] ["
+
PosId
+
"] ["
+
PlateW
+
"x"
+
PlateH
+
"],InStoreNg ["
+
InStoreNg
+
"],urgentReel ["
+
urgentReel
+
"],cutReel ["
+
cutReel
+
"],smallReel ["
+
smallReel
+
"],rfid ["
+
rfid
+
"],rfidLoc ["
+
rfidLoc
+
"]"
;
}
public
string
ToShortStr
()
{
return
" ["
+
rfid
+
"]["
+
WareCode
+
"] ["
+
PosId
+
"] ["
+
PlateW
+
"x"
+
PlateH
+
"] "
+
(
urgentReel
?
"[紧急料]"
:
""
)
+
(
cutReel
?
"[分盘料]"
:
""
);
}
/// <summary>
/// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
/// </summary>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论