Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-ACPackingStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f72c9764
由
LN
编写于
2019-12-18 14:24:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
界面调整
1 个父辈
4dfa6eca
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
108 行增加
和
134 行删除
source/ACPackingStore/App.config
source/ACPackingStore/FrmBox.Designer.cs
source/ACPackingStore/FrmBox.cs
source/ACPackingStore/FrmStore.Designer.cs
source/ACPackingStore/FrmStore.cs
source/ACPackingStore/useControl/AxisMoveControl.Designer.cs
source/Common/Setting_Init.cs
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean.cs
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
source/DeviceLibrary/device/halcon/CodeManager - 复制.cs → source/DeviceLibrary/device/halcon/CodeManager-back.cs
source/DeviceLibrary/device/halcon/CodeManager.cs
source/ACPackingStore/App.config
查看文件 @
f72c976
...
...
@@ -6,12 +6,12 @@
<
appSettings
>
<!--是否开机自动启动料仓-->
<
add
key
=
"App_AutoRun"
value
=
"1"
/>
<
add
key
=
"App_Title"
value
=
"包装料料仓"
/>
<
add
key
=
"App_Title"
value
=
"包装料料仓"
/>
<!-- 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)-->
<
add
key
=
"StartBlowValue"
value
=
"4"
/>
<!-- 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)-->
<
add
key
=
"StopBlowValue"
value
=
"4"
/>
<!--
Server
address
-->
<!--
Server
address
-->
<
add
key
=
"http.server"
value
=
"http://192.168.101.11/myproject/"
/>
<!--
storeType
-->
<
add
key
=
"store_count"
value
=
"2"
/>
...
...
@@ -31,22 +31,23 @@
<!--二维码类型列表配置,用
#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<
add
key
=
"CodeType"
value
=
"QR Code"
/>
<!--出库等待料盘拿走的时间,秒-->
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<!--温控器类型,
0
=壁挂王字壳温湿度变送器,
1
=妙昕温湿度记录仪-->
<
add
key
=
"HumitureControllerType"
value
=
"0"
/>
<
add
key
=
"UseAIOBOX"
value
=
"1"
/>
<
add
key
=
"DIMS"
value
=
"
12
0"
/>
<
add
key
=
"DIMS"
value
=
"
6
0"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<!--流水线地址和端口配置-->
<
add
key
=
"LineServerIp"
value
=
"192.168.101.11"
/>
<
add
key
=
"LineServerPort"
value
=
"5246"
/>
<!--是否调试状态-->
<
add
key
=
"IsInDebug"
value
=
"1"
/>
<
add
key
=
"UseBuzzer"
value
=
"1"
/>
<
add
key
=
"UseBuzzer"
value
=
"1"
/>
<!--
IO
模块是否主动上传-->
<
add
key
=
"AIOAutoUpload"
value
=
"
1
"
/>
<
add
key
=
"AIOAutoUpload"
value
=
"
0
"
/>
<!--
AGV
调度服务器地址-->
<
add
key
=
"AgvServerIp"
value
=
"192.168.103.22"
/>
<
add
key
=
"CodeCount"
value
=
"1"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
...
...
source/ACPackingStore/FrmBox.Designer.cs
查看文件 @
f72c976
此文件的差异被折叠,
点击展开。
source/ACPackingStore/FrmBox.cs
查看文件 @
f72c976
...
...
@@ -147,22 +147,7 @@ namespace OnlineStore.ACPackingStore
LoadOk
=
true
;
}
lblTemp
.
Text
=
BoxBean
.
humBean
.
currTempStr
;
lblWarnMsg
.
Text
=
BoxBean
.
WarnMsg
;
if
(
BoxBean
.
IOValue
(
IO_Type
.
DoorLimit
).
Equals
(
IO_VALUE
.
LOW
))
{
lblWarnMsg
.
Text
=
lblWarnMsg
.
Text
+
" 前门未关"
;
}
if
(
BoxBean
.
IOValue
(
IO_Type
.
DoorLimit
).
Equals
(
IO_VALUE
.
LOW
))
{
lblWarnMsg
.
Text
=
lblWarnMsg
.
Text
+
" 无门禁信号,请检查"
;
}
if
(
BoxBean
.
humBean
.
TempOrHumidityIsAlarm
)
{
lblWarnMsg
.
Text
=
lblWarnMsg
.
Text
+
" 温湿度报警["
+
BoxBean
.
humBean
.
TempAlarmTime
.
ToLongTimeString
()
+
"]"
;
}
if
(
lblWarnMsg
.
Text
.
Equals
(
""
))
{
}
lblWarnMsg
.
Text
=
BoxBean
.
GetWarnMsg
();
//ReadPosistion();
if
(
BoxBean
.
storeRunStatus
>
StoreRunStatus
.
Wait
)
...
...
source/ACPackingStore/FrmStore.Designer.cs
查看文件 @
f72c976
...
...
@@ -181,7 +181,7 @@
this
.
lblWarnMsg
.
ForeColor
=
System
.
Drawing
.
Color
.
Red
;
this
.
lblWarnMsg
.
Location
=
new
System
.
Drawing
.
Point
(
281
,
4
);
this
.
lblWarnMsg
.
Name
=
"lblWarnMsg"
;
this
.
lblWarnMsg
.
Size
=
new
System
.
Drawing
.
Size
(
10
45
,
69
);
this
.
lblWarnMsg
.
Size
=
new
System
.
Drawing
.
Size
(
10
62
,
69
);
this
.
lblWarnMsg
.
TabIndex
=
96
;
this
.
lblWarnMsg
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
//
...
...
source/ACPackingStore/FrmStore.cs
查看文件 @
f72c976
...
...
@@ -56,6 +56,8 @@ namespace OnlineStore.ACPackingStore
// LogUtil.logBox = this.logBox;
// HideForm();
LoadOk
=
true
;
this
.
timer1
.
Start
();
}
...
...
@@ -127,10 +129,8 @@ namespace OnlineStore.ACPackingStore
IOManager
.
instance
.
CloseAllDO
();
IOManager
.
instance
.
CloseAllConnection
();
HumitureController
.
CloseAllPort
();
//AIManager.CloseConnect();
ACServerManager
.
CloseAllPort
();
CodeManager
.
CloseAllCamera
();
HumitureController
.
CloseAllPort
();
ACServerManager
.
CloseAllPort
();
//this.Close();
System
.
Environment
.
Exit
(
System
.
Environment
.
ExitCode
);
}
...
...
@@ -170,7 +170,6 @@ namespace OnlineStore.ACPackingStore
startTimer
.
Interval
=
1
;
startTimer
.
Elapsed
+=
timer_Elapsed
;
startTimer
.
Enabled
=
true
;
this
.
timer1
.
Start
();
}
private
delegate
void
ShowFormDelegate
();
void
timer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
...
...
@@ -272,7 +271,16 @@ namespace OnlineStore.ACPackingStore
{
return
;
}
string
msg
=
""
;
foreach
(
AC_BOX_Bean
box
in
StoreManager
.
Store
.
BoxMap
.
Values
)
{
string
s
=
box
.
GetWarnMsg
();
if
(!
s
.
Equals
(
""
))
{
msg
+=
box
.
Name
+
":"
+
s
+
"\r"
;
}
}
lblWarnMsg
.
Text
=
msg
;
}
private
void
chbAutoRun_CheckedChanged
(
object
sender
,
EventArgs
e
)
...
...
source/ACPackingStore/useControl/AxisMoveControl.Designer.cs
查看文件 @
f72c976
此文件的差异被折叠,
点击展开。
source/Common/Setting_Init.cs
查看文件 @
f72c976
...
...
@@ -99,5 +99,6 @@ namespace OnlineStore.Common
public
static
string
Tool_TargetPosition
=
"Tool_TargetPosition"
;
public
static
string
AgvServerIp
=
"AgvServerIp"
;
public
static
string
CodeCount
=
"CodeCount"
;
}
}
source/DeviceLibrary/ACPackingStore/AC_BOX_Bean.cs
查看文件 @
f72c976
...
...
@@ -188,6 +188,25 @@ namespace OnlineStore.DeviceLibrary
}
}
public
string
GetWarnMsg
()
{
string
msg
=
WarnMsg
;
//if (IOValue(IO_Type.DoorLimit).Equals(IO_VALUE.LOW))
//{
// msg = msg + " 前门未关";
//}
if
(
IOValue
(
IO_Type
.
DoorLimit
).
Equals
(
IO_VALUE
.
LOW
))
{
msg
=
msg
+
" 无门禁信号"
;
}
if
(
humBean
.
TempOrHumidityIsAlarm
)
{
msg
=
msg
+
" 温湿度报警["
+
humBean
.
TempAlarmTime
.
ToLongTimeString
()
+
"]"
;
}
return
msg
;
}
#
region
原点返回和复位处理
private
void
ReturnHome
()
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
查看文件 @
f72c976
...
...
@@ -129,6 +129,6 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
,,,,,,,,,,
PRO,温湿度端口号,Humiture_Port,COM2,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,
CameraName
,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,
#
,,,,,,,
PRO,RFID读卡器IP,RFID_IP,192.168.106.101,,,,,,,
PRO,是否是调试状态,IsInDebug,1,,,,,,,
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
查看文件 @
f72c976
...
...
@@ -128,7 +128,7 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
PRO,温湿度端口号,Humiture_Port,COM2,,,,,,,
,,,,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,
CameraName
,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,
#
,,,,,,,
PRO,RFID读卡器IP,RFID_IP,192.168.106.102,,,,,,,
PRO,是否是调试状态,IsInDebug,1,,,,,,,
source/DeviceLibrary/device/halcon/CodeManager
- 复制
.cs
→
source/DeviceLibrary/device/halcon/CodeManager
-back
.cs
查看文件 @
f72c976
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/device/halcon/CodeManager.cs
查看文件 @
f72c976
...
...
@@ -7,15 +7,14 @@ using System.IO;
using
System.Linq
;
using
System.Runtime.ExceptionServices
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
OnlineStore.DeviceLibrary
{
public
class
CodeManager
{
public
class
CodeManager
{
public
static
List
<
string
>
codeTypeList
=
new
List
<
string
>();
public
static
List
<
string
>
balserNameList
=
new
List
<
string
>();
public
static
List
<
string
>
hikNameList
=
new
List
<
string
>();
...
...
@@ -56,7 +55,7 @@ namespace OnlineStore.DeviceLibrary
{
try
{
CodeLibrary
.
HIKC
Manager
.
Load
();
CodeLibrary
.
HIKC
amera
.
Instance
.
Load
();
}
catch
(
Exception
ex
)
{
...
...
@@ -64,14 +63,14 @@ namespace OnlineStore.DeviceLibrary
}
try
{
CodeLibrary
.
BaslerC
Manager
.
Load
();
CodeLibrary
.
BaslerC
amera
.
Instance
.
Load
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"加载Basler相机出错:"
+
ex
.
ToString
());
}
}
string
[]
names
=
CodeLibrary
.
HIKC
Manager
.
CameraName
;
string
[]
names
=
CodeLibrary
.
HIKC
amera
.
Instance
.
CameraName
;
if
(
names
!=
null
)
...
...
@@ -82,7 +81,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
info
(
"加载到HIK相机:"
+
name
);
}
}
names
=
CodeLibrary
.
BaslerC
Manager
.
CameraName
;
names
=
CodeLibrary
.
BaslerC
amera
.
Instance
.
CameraName
;
if
(
names
!=
null
)
{
balserNameList
.
AddRange
(
names
);
...
...
@@ -92,29 +91,10 @@ namespace OnlineStore.DeviceLibrary
}
}
}
public
static
void
CloseCamera
(
string
name
)
{
try
{
//BaslerCamera.Instance.Close();
//HIKCamera.Instance.Close();
if
(
HIKCManager
.
CameraName
.
Contains
(
name
))
{
HIKCManager
.
Close
(
name
);
}
else
{
BaslerCManager
.
Close
(
name
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"CloseCamera["
+
name
+
"]出错:"
+
ex
.
ToString
());
}
}
public
static
void
CloseAllCamera
()
public
static
void
CloseCamera
()
{
HIKCManager
.
CloseAll
();
BaslerCManager
.
CloseAll
();
BaslerCamera
.
Instance
.
Close
();
HIKCamera
.
Instance
.
Close
();
}
public
static
Bitmap
GetCamerImage
(
string
cameraName
)
...
...
@@ -124,15 +104,13 @@ namespace OnlineStore.DeviceLibrary
{
if
(
balserNameList
.
Contains
(
cameraName
))
{
bool
result
=
true
;
if
(!
BaslerCManager
.
IsOpen
(
cameraName
))
{
result
=
BaslerCManager
.
Open
(
cameraName
);
}
bool
result
=
BaslerCamera
.
Instance
.
Open
(
cameraName
);
// LogUtil.info("打开相机:" + cameraName + "(" + result + ")");
if
(
result
)
{
bitm
=
BaslerCManager
.
GrabOne
(
cameraName
);
BaslerCamera
.
Instance
.
GrabOne
();
bitm
=
BaslerCamera
.
Instance
.
Image
;
BaslerCamera
.
Instance
.
Close
();
}
else
{
...
...
@@ -141,16 +119,13 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
hikNameList
.
Contains
(
cameraName
))
{
bool
result
=
true
;
if
(!
HIKCManager
.
IsOpen
(
cameraName
))
{
result
=
HIKCManager
.
Open
(
cameraName
);
}
bool
result
=
HIKCamera
.
Instance
.
Open
(
cameraName
);
// LogUtil.info("打开相机:" + cameraName + "(" + result + ")");
if
(
result
)
{
bitm
=
HIKCManager
.
GrabOne
(
cameraName
);
HIKCamera
.
Instance
.
GrabOne
();
bitm
=
HIKCamera
.
Instance
.
Image
;
HIKCamera
.
Instance
.
Close
();
}
else
{
...
...
@@ -174,57 +149,66 @@ namespace OnlineStore.DeviceLibrary
}
return
bitm
;
}
private
static
int
codeCount
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
CodeCount
);
[
HandleProcessCorruptedStateExceptions
]
public
static
List
<
string
>
CameraScan
(
List
<
string
>
camera
NameList
)
public
static
List
<
string
>
CameraScan
(
List
<
string
>
camera
List
=
null
)
{
if
(
codeCount
<
1
)
{
codeCount
=
1
;
}
List
<
string
>
codeList
=
new
List
<
string
>();
//List<CodeInfo> allCodeList = new List<CodeInfo>();
if
(
cameraList
==
null
||
cameraList
.
Count
<=
0
)
{
return
codeList
;
}
try
{
List
<
Task
<
List
<
CodeInfo
>>>
taskList
=
new
List
<
Task
<
List
<
CodeInfo
>>>();
foreach
(
string
cameraName
in
cameraNameList
)
foreach
(
string
cameraName
in
cameraList
)
{
Task
.
Factory
.
StartNew
(
delegate
()
if
(
cameraName
.
Trim
().
Equals
(
""
))
{
continue
;
}
using
(
Bitmap
bitmap
=
GetCamerImage
(
cameraName
))
{
using
(
Bitmap
bitmap
=
GetCamerImage
(
cameraName
))
if
(
bitmap
==
null
)
{
LogUtil
.
error
(
" 摄像机【"
+
cameraName
+
"】获取图片失败,关闭相机"
);
CloseCamera
();
continue
;
}
LogUtil
.
debug
(
" 摄像机【"
+
cameraName
+
"】获取图片完成"
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
LogUtil
.
debug
(
" 摄像机【"
+
cameraName
+
"】转换图片完成,开始扫码"
);
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
foreach
(
string
codeType
in
codeTypeList
)
{
if
(
bitmap
==
null
)
//判断是否是一维码
if
(
codeType
.
ToLower
().
Equals
(
"barcode"
))
{
LogUtil
.
error
(
" 摄像机【"
+
cameraName
+
"】获取图片失败,关闭相机"
);
CloseCamera
(
cameraName
);
return
;
cc
=
HDCodeHelper
.
DecodeBarCode
(
ho_Image
);
}
LogUtil
.
debug
(
" 摄像机【"
+
cameraName
+
"】获取图片完成"
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
LogUtil
.
debug
(
" 摄像机【"
+
cameraName
+
"】转换图片完成,开始扫码"
);
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
foreach
(
string
codeType
in
codeTypeList
)
else
{
Task
<
List
<
CodeInfo
>>
typeDeCode
=
Task
.
Factory
.
StartNew
(
delegate
()
{
return
DeCode
(
ho_Image
,
codeType
);
});
taskList
.
Add
(
typeDeCode
);
cc
=
HDCodeHelper
.
DecodeCode
(
ho_Image
,
codeCount
,
GetCodeParamFilePath
(
codeType
),
codeType
);
}
}
});
}
Task
.
WaitAll
(
taskList
.
ToArray
());
foreach
(
Task
<
List
<
CodeInfo
>>
t
in
taskList
)
{
List
<
CodeInfo
>
cc
=
t
.
Result
;
if
(
cc
.
Count
>
0
)
{
string
r
=
""
;
foreach
(
CodeInfo
c
in
cc
)
{
codeList
.
Add
(
c
.
CodeStr
);
r
=
r
+
"##"
+
c
.
CodeStr
;
//if (cc.Count > 0)
//{
string
r
=
""
;
foreach
(
CodeInfo
c
in
cc
)
{
codeList
.
Add
(
c
.
CodeStr
);
r
=
r
+
"##"
+
c
.
CodeStr
;
}
LogUtil
.
info
(
" 【"
+
cameraName
+
"】【"
+
codeType
+
"】扫码完成:"
+
r
);
//}
}
bitmap
.
Dispose
();
}
}
}
...
...
@@ -240,30 +224,6 @@ namespace OnlineStore.DeviceLibrary
return
codeList
;
}
private
static
List
<
CodeInfo
>
DeCode
(
HalconDotNet
.
HObject
ho_Image
,
string
codeType
)
{
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
//判断是否是一维码
if
(
codeType
.
ToLower
().
Equals
(
"barcode"
))
{
cc
=
HDCodeHelper
.
DecodeBarCode
(
ho_Image
);
}
else
{
cc
=
HDCodeHelper
.
DecodeCode
(
ho_Image
,
1
,
GetCodeParamFilePath
(
codeType
),
codeType
);
}
//if (cc.Count > 0)
//{
// string r = "";
// foreach (CodeInfo c in cc)
// {
// codeList.Add(c.CodeStr);
// r = r + "##" + c.CodeStr;
// }
// LogUtil.debug(" 【" + cameraName + "】【" + codeType + "】扫码完成:" + r);
//}
return
cc
;
}
public
static
string
GetCodeParamFilePath
(
string
codePath
)
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论