Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 87d44079
由
LN
编写于
2020-03-05 14:07:06 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
皮带线456需要提前扫码,扫码后缓存,送料逻辑修改
1 个父辈
62da7271
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
117 行增加
和
52 行删除
source/AssemblyLineClient/App.config
source/AssemblyLineClient/FrmDischargeLine.Designer.cs
source/AssemblyLineClient/FrmDischargeLine.cs
source/AssemblyLineClient/记录.txt
source/DeviceLibrary/assemblyLine/DischargeLine.cs
source/DeviceLibrary/assemblyLine/DischargeLine_Partial.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblyLine/OutTrayLineBean.cs
source/DeviceLibrary/assemblymanager/SServerManager.cs
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
source/DeviceLibrary/model/StoreStep.cs
source/AssemblyLineClient/App.config
查看文件 @
87d4407
...
...
@@ -5,7 +5,7 @@
</
configSections
>
<
appSettings
>
<!--是否开机自动启动料仓-->
<
add
key
=
"App_AutoRun"
value
=
"
1
"
/>
<
add
key
=
"App_AutoRun"
value
=
"
0
"
/>
<
add
key
=
"App_Title"
value
=
"流水线客户端"
/>
<!--
Server
address
-->
<!--<
add
key
=
"http.server"
value
=
"http://localhost/myproject/service/store/emptyPosForPutin"
/>-->
...
...
@@ -50,7 +50,7 @@
<
add
key
=
"OpenRFIDWrite"
value
=
"1"
/>
<
add
key
=
"DefaultPWD"
value
=
"123456"
/>
<!--当前调试的设备
ID
,分号分割-->
<
add
key
=
"DebugDeviceId"
value
=
"30
1
"
/>
<
add
key
=
"DebugDeviceId"
value
=
"30
2
"
/>
<
add
key
=
"Server_Log_Open"
value
=
"0"
/>
<
add
key
=
"CodeCount"
value
=
"3"
/>
<
add
key
=
"DefaultTrayNum"
value
=
"0"
/>
...
...
source/AssemblyLineClient/FrmDischargeLine.Designer.cs
查看文件 @
87d4407
此文件的差异被折叠,
点击展开。
source/AssemblyLineClient/FrmDischargeLine.cs
查看文件 @
87d4407
...
...
@@ -351,20 +351,7 @@ namespace OnlineStore.AssemblyLine
private
void
btnSRun_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBase
.
Name
+
"点击【"
+
btnSRun
.
Text
+
"】 "
);
if
(
btnSRun
.
Text
.
Equals
(
"分盘装置电机正转"
))
{
equipBean
.
SeparateLineRun
();
btnSRun
.
Text
=
"分盘装置电机反转"
;
btnSRun
.
BackColor
=
Color
.
Aqua
;
}
else
{
equipBean
.
SeparateBackRun
();
btnSRun
.
Text
=
"分盘装置电机正转"
;
btnSRun
.
BackColor
=
Color
.
SkyBlue
;
}
//BtnMove(btnSRun, "分盘装置电机驱动", "分盘装置电机停止", IO_Type.SeparateDevice_Run);
equipBean
.
SeparateLineRun
();
}
private
void
btnStrart_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -446,37 +433,49 @@ namespace OnlineStore.AssemblyLine
//判断line2是否停止
if
(
equipBase
.
IOValue
(
IO_Type
.
DLine_Run2
).
Equals
(
IO_VALUE
.
LOW
))
{
BtnMove
(
btnNgMove
,
"
NG气缸前进"
,
"
NG气缸后退"
,
IO_Type
.
NGCylinder_After
,
IO_Type
.
NGCylinder_Before
);
BtnMove
(
btnNgMove
,
"
入库NG气缸前进"
,
"入库
NG气缸后退"
,
IO_Type
.
NGCylinder_After
,
IO_Type
.
NGCylinder_Before
);
}
else
{
MessageBox
.
Show
(
line2Name
+
"运转中,NG气缸不能动作"
);
MessageBox
.
Show
(
line2Name
+
"运转中,
入库
NG气缸不能动作"
);
}
}
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBase
.
Name
+
"点击【"
+
button1
.
Text
+
"】 "
);
equipBean
.
SeparateStopRun
();
btnSRun
.
BackColor
=
Color
.
White
;
equipBean
.
SeparateStopRun
();
}
private
void
btnScanCylinder_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBase
.
Name
+
"点击【"
+
btnScanCylinder
.
Text
+
"】 "
);
if
(
btnScanCylinder
.
Text
.
Equals
(
"扫码NG气缸前进"
))
if
(
equipBase
.
IOValue
(
IO_Type
.
DLine_Run3
).
Equals
(
IO_VALUE
.
LOW
))
{
equipBean
.
ScanNgForward
(
null
);
btnScanCylinder
.
Text
=
"扫码NG气缸后退"
;
btnScanCylinder
.
BackColor
=
Color
.
Aqua
;
}
LogUtil
.
info
(
equipBase
.
Name
+
"点击【"
+
btnScanCylinder
.
Text
+
"】 "
);
if
(
btnScanCylinder
.
Text
.
Equals
(
"扫码NG气缸前进"
))
{
equipBean
.
ScanNgForward
(
null
);
btnScanCylinder
.
Text
=
"扫码NG气缸后退"
;
btnScanCylinder
.
BackColor
=
Color
.
Aqua
;
}
else
{
equipBean
.
ScanNgBack
(
null
);
btnScanCylinder
.
Text
=
"扫码NG气缸前进"
;
btnScanCylinder
.
BackColor
=
Color
.
SkyBlue
;
}
}
else
{
equipBean
.
ScanNgBack
(
null
);
btnScanCylinder
.
Text
=
"扫码NG气缸前进"
;
btnScanCylinder
.
BackColor
=
Color
.
SkyBlue
;
MessageBox
.
Show
(
line2Name
+
"运转中,扫码NG气缸不能动作"
);
}
}
private
void
button2_Click
(
object
sender
,
EventArgs
e
)
{
LogUtil
.
info
(
equipBase
.
Name
+
"点击【"
+
button2
.
Text
+
"】 "
);
equipBean
.
SeparateStopRun
();
}
}
}
...
...
source/AssemblyLineClient/记录.txt
查看文件 @
87d4407
...
...
@@ -246,8 +246,10 @@ PRO,0,移栽上下轴流水线取放料详细位置P2,UpDownP2DetialList,0X0=800
皮带线扫码NG修改,皮带线123NG时转动到接驳台并倒转。
皮带线456扫码提前一个工位,NG时转动到下一个工位并NG气缸推出。
20200305:皮带线逻辑修改:
皮带线456需要提前扫码,扫码后缓存,送料逻辑修改。
皮带线456需要提前扫码,扫码后缓存。
...
...
source/DeviceLibrary/assemblyLine/DischargeLine.cs
查看文件 @
87d4407
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblyLine/DischargeLine_Partial.cs
查看文件 @
87d4407
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
87d4407
...
...
@@ -623,8 +623,8 @@ namespace OnlineStore.DeviceLibrary
//收到复位信号后启动
if
(
isAutoStart
&&
fuweiValue
.
Equals
(
IO_VALUE
.
HIGH
)
&&
lastFuwei
.
Equals
(
IO_VALUE
.
LOW
))
{
//没有启动时收到
复位按钮,相当于
启动按钮
LogUtil
.
info
(
Name
+
"没有启动时收到
复位按钮,相当于
启动按钮,开始调用启动方法!"
);
//没有启动时收到启动按钮
LogUtil
.
info
(
Name
+
"没有启动时收到启动按钮,开始调用启动方法!"
);
bool
isOk
=
StartRun
();
if
(!
isOk
)
{
...
...
source/DeviceLibrary/assemblyLine/OutTrayLineBean.cs
查看文件 @
87d4407
...
...
@@ -450,7 +450,7 @@ namespace OnlineStore.DeviceLibrary
if
(
result
.
Equals
(
""
))
{
if
(
span
.
TotalSeconds
>=
4
&&
span
.
TotalSeconds
<=
5
)
{
{
LogUtil
.
debug
(
subType
+
"停止运动:["
+
moveDO
+
"] ["
+
checkDI
+
"] 耗时 ["
+
FormUtil
.
GetSpanStr
(
span
)
+
"]["
+
canWhileCount
+
"]"
);
}
else
...
...
@@ -464,7 +464,10 @@ namespace OnlineStore.DeviceLibrary
}
LastEndTime
=
DateTime
.
Now
;
IOManager
.
IOMove
(
moveDO
,
IO_VALUE
.
LOW
,
subType
);
turnEnd
?.
Invoke
(
result
.
Equals
(
""
));
Task
.
Factory
.
StartNew
(
delegate
{
turnEnd
?.
Invoke
(
result
.
Equals
(
""
));
});
InTurn
=
false
;
return
result
;
}
...
...
source/DeviceLibrary/assemblymanager/SServerManager.cs
查看文件 @
87d4407
...
...
@@ -145,22 +145,36 @@ namespace OnlineStore.DeviceLibrary
}
return
""
;
}
public
static
string
GetTraySize
(
string
deviceName
,
int
robotIndex
,
List
<
string
>
codeList
,
out
int
outSize
)
public
static
string
ProcessCodeList
(
List
<
string
>
codeList
)
{
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
;
}
return
codeStr
;
}
public
static
string
GetTraySize
(
string
deviceName
,
int
robotIndex
,
string
codeStr
,
out
int
outSize
)
{
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
;
}
//
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
+
"未扫到条码"
;
...
...
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
查看文件 @
87d4407
...
...
@@ -117,7 +117,7 @@ namespace OnlineStore.DeviceLibrary
if
(
balserNameList
.
Contains
(
cameraName
))
{
bool
result
=
BaslerCamera
.
Instance
.
Open
(
cameraName
);
// LogUtil.info("打开相机:" + cameraName + "(" + result + ")");
LogUtil
.
info
(
"相机【"
+
cameraName
+
"】打开:"
+
result
+
""
);
if
(
result
)
{
BaslerCamera
.
Instance
.
GrabOne
();
...
...
@@ -183,20 +183,21 @@ namespace OnlineStore.DeviceLibrary
{
continue
;
}
LogUtil
.
info
(
"
摄像机【"
+
cameraName
+
"】开始
获取图片"
);
LogUtil
.
info
(
"
相机【"
+
cameraName
+
"】开始打开相机
获取图片"
);
using
(
Bitmap
bitmap
=
GetCamerImage
(
cameraName
))
{
if
(
bitmap
==
null
)
{
LogUtil
.
error
(
"
摄像
机【"
+
cameraName
+
"】获取图片失败,关闭相机"
);
LogUtil
.
error
(
"
相
机【"
+
cameraName
+
"】获取图片失败,关闭相机"
);
CloseCamera
();
continue
;
}
LogUtil
.
info
(
"
【"
+
cameraName
+
"】获取图片完成,开始转换图片
"
);
LogUtil
.
info
(
"
相机 【"
+
cameraName
+
"】获取图片完成,开始转换图片,并扫码
"
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
//转换托盘大概100-150ms,不打印日志
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
LogUtil
.
info
(
"
【"
+
cameraName
+
"】转换图片完成,开始扫码"
);
// LogUtil.info(" 相机
【" + cameraName + "】转换图片完成,开始扫码");
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
string
r
=
""
;
foreach
(
string
codeType
in
codeTypeList
)
...
...
@@ -216,10 +217,10 @@ namespace OnlineStore.DeviceLibrary
codeList
.
Add
(
str
);
r
=
r
+
"##"
+
str
;
}
LogUtil
.
debug
(
"
【"
+
cameraName
+
"】【"
+
codeType
+
"】扫码完成:"
+
r
);
// LogUtil.debug(" 相机
【" + cameraName + "】【" + codeType + "】扫码完成:" + r);
}
LogUtil
.
info
(
"【"
+
cameraName
+
"】扫码完成:"
+
r
);
LogUtil
.
info
(
"
相机
【"
+
cameraName
+
"】扫码完成:"
+
r
);
ho_Image
.
Dispose
();
bitmap
.
Dispose
();
}
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
87d4407
...
...
@@ -1040,6 +1040,50 @@ namespace OnlineStore.DeviceLibrary
DO_18_SeparateRun
=
30218
,
#
endregion
#
region
皮带线
3
送出料盘新处理,增加
NG
推出气缸后的处理
/// <summary>
/// 送料盘到双层线:NG气缸后退,等待100后处理,
/// </summary>
DON_01_WaitTime
=
30401
,
/// <summary>
/// 送料盘到双层线:根据二维码从服务器获取料盘尺寸
/// </summary>
DON_03_GetTraySize
=
30403
,
/// <summary>
/// 送料盘到双层线:上升或下降分盘定位气缸
/// </summary>
DON_04_SUpDownMove
=
30404
,
/// <summary>
/// 送料盘到双层线:转动皮带线,同时转动分盘装置
/// </summary>
DON_05_LineRun
=
30405
,
/// <summary>
/// 送料盘到双层线:等待料盘到达分盘装置位置
/// </summary>
DON_07_SeparateCheck
=
30407
,
/// <summary>
/// 送料盘到双层线:到达后再转动500
/// </summary>
DON_08_CRun
=
30408
,
/// <summary>
/// 横移NG料:NG气缸前进
/// </summary>
DON_12_NGCylinderForward
=
30412
,
/// <summary>
/// 横移NG料:NG气缸前进后等待1000ms
/// </summary>
DON_13_NGCylinderWait
=
30413
,
/// <summary>
/// 横移NG料:NG气缸后退
/// </summary>
DON_14_NGCylinderBack
=
30414
,
#
endregion
#
region
皮带线
12
接收料盘并转动处理
/// <summary>
/// 皮带线12处理料盘:需要放入料盘,等待入口无料盘
...
...
@@ -1089,6 +1133,8 @@ namespace OnlineStore.DeviceLibrary
DLO_11_ExitNoTray
#
endregion
#
endregion
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论