Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 55efe6d1
由
几米阳光
编写于
2019-03-21 13:07:23 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
AIO模块修改
1 个父辈
7871d050
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
300 行增加
和
179 行删除
dll/AIOBOX.dll
dll/AIOBOX.xml
source/DeviceLibrary/IO/AIOBOX/AIOBOXManager.cs
source/DeviceLibrary/StoreConfig/AC/StoreConfig.csv
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
source/DeviceLibrary/halcon/CodeManager.cs
dll/AIOBOX.dll
查看文件 @
55efe6d
此文件类型无法预览
dll/AIOBOX.xml
查看文件 @
55efe6d
...
...
@@ -9,15 +9,16 @@
AIOBOX-32
</summary>
</member>
<member
name=
"T:Asa.AIOBOX.AIOBOX_32.DI_Changed"
>
<member
name=
"T:Asa.AIOBOX.AIOBOX_32.DI
O
_Changed"
>
<summary>
自动读取DI委托
自动读取DI
O
委托
</summary>
<param
name=
"sta"
>
状态
</param>
<param
name=
"staDI"
>
所有DI状态
</param>
<param
name=
"staDO"
>
所有DO状态
</param>
</member>
<member
name=
"E:Asa.AIOBOX.AIOBOX_32.DI_Changed_Event"
>
<member
name=
"E:Asa.AIOBOX.AIOBOX_32.DI
O
_Changed_Event"
>
<summary>
自动读取DI事件触发
自动读取DI
O
事件触发
</summary>
</member>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.#ctor"
>
...
...
@@ -55,6 +56,11 @@
错误信息
</summary>
</member>
<member
name=
"P:Asa.AIOBOX.AIOBOX_32.AutoRead"
>
<summary>
自动读取DIO状态,触发DIO_Changed_Event
</summary>
</member>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.Connect"
>
<summary>
连接
...
...
@@ -148,14 +154,14 @@
监听结果线程,把读取到的数据保存到buff
</summary>
</member>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.Auto_Read_DI"
>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.Auto_Read_DI
O
"
>
<summary>
自动读取DI线程
自动读取DI
O
线程
</summary>
</member>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.Trigger_DI"
>
<member
name=
"M:Asa.AIOBOX.AIOBOX_32.Trigger_DI
O
"
>
<summary>
触发DI改变事件
触发DI
O
改变事件
</summary>
</member>
<member
name=
"T:Asa.AIOBOX.Reg"
>
...
...
source/DeviceLibrary/IO/AIOBOX/AIOBOXManager.cs
查看文件 @
55efe6d
...
...
@@ -13,24 +13,21 @@ namespace OnlineStore.DeviceLibrary
{
public
class
AIOBOXManager
:
IOManager
{
public
static
int
DefaultDICount
=
16
;
public
static
uint
DefaultDOCount
=
16
;
public
readonly
ILog
LOGGER
=
LogManager
.
GetLogger
(
MethodBase
.
GetCurrentMethod
().
DeclaringType
);
public
Dictionary
<
string
,
AIOBOX_32
>
AIOMap
=
new
Dictionary
<
string
,
AIOBOX_32
>();
public
string
DefaultIP
=
""
;
public
Dictionary
<
string
,
Dictionary
<
Addr
,
Status
>>
DIValueMap
=
new
Dictionary
<
string
,
Dictionary
<
Addr
,
Status
>>();
public
Dictionary
<
string
,
Dictionary
<
Addr
,
Status
>>
DOValueMap
=
new
Dictionary
<
string
,
Dictionary
<
Addr
,
Status
>>();
private
object
DIMapLock
=
""
;
private
object
DOMapLock
=
""
;
public
System
.
Timers
.
Timer
timer
=
null
;
private
object
DILock
=
""
;
private
object
DOLock
=
""
;
public
void
ConnectionIP
(
string
ioIp
)
{
if
(
timer
==
null
)
{
timer
=
new
System
.
Timers
.
Timer
();
timer
.
Interval
=
300
;
timer
.
AutoReset
=
true
;
timer
.
Elapsed
+=
timer_Elapsed
;
timer
.
Enabled
=
true
;
}
{
AIOBOX_32
aioBox
=
null
;
if
(
AIOMap
.
ContainsKey
(
ioIp
))
{
...
...
@@ -43,51 +40,104 @@ namespace OnlineStore.DeviceLibrary
}
AIOMap
.
Remove
(
ioIp
);
}
if
(
DIValueMap
.
ContainsKey
(
ioIp
))
{
DIValueMap
.
Remove
(
ioIp
);
}
if
(
DOValueMap
.
ContainsKey
(
ioIp
))
{
DOValueMap
.
Remove
(
ioIp
);
}
try
{
// Create new modbus master and add event functions
aioBox
=
new
AIOBOX_32
();
aioBox
=
new
AIOBOX_32
();
aioBox
.
IP
=
ioIp
;
bool
result
=
aioBox
.
Connect
();
if
(
result
)
{
AIOMap
.
Add
(
ioIp
,
aioBox
);
}
else
DefaultIP
=
ioIp
;
aioBox
.
AutoRead
=
true
;
aioBox
.
DIO_Changed_Event
+=
AioBox_DIO_Changed_Event
;
LogUtil
.
info
(
"开始连接IO模块【"
+
ioIp
+
"】,尝试重连三次"
);
for
(
int
i
=
1
;
i
<=
3
;
i
++)
{
LogUtil
.
error
(
"连接IO模块【"
+
ioIp
+
"】失败:"
+
aioBox
.
ErrInfo
);
bool
result
=
aioBox
.
Connect
();
if
(
result
)
{
AIOMap
.
Add
(
ioIp
,
aioBox
);
LogUtil
.
info
(
"第【"
+
i
+
"】次连接IO模块【"
+
ioIp
+
"】成功:"
+
aioBox
.
ErrInfo
);
Thread
.
Sleep
(
10
);
//读取所有的DO
ReadAllDI
(
ioIp
,
0
);
break
;
}
else
{
LogUtil
.
error
(
"第【"
+
i
+
"】次连接IO模块【"
+
ioIp
+
"】失败:"
+
aioBox
.
ErrInfo
+
""
);
}
Thread
.
Sleep
(
10
);
}
Thread
.
Sleep
(
10
);
//读取所有的DO
ReadAllDI
(
ioIp
,
0
);
}
catch
(
Exception
error
)
{
LogUtil
.
error
(
LOGGER
,
"连接IO模块["
+
ioIp
+
"]出错:"
+
error
.
ToString
());
}
}
/// <summary>
/// 判断Io模块是否连接
/// </summary>
public
bool
IsConnection
(
string
ip
)
private
void
AioBox_DIO_Changed_Event
(
Status
[]
staDI
,
Status
[]
staDO
)
{
try
{
if
(
AIOMap
.
ContainsKey
(
ip
))
UpdateAllDI
(
DefaultIP
,
staDI
);
UpdateAllDO
(
DefaultIP
,
staDO
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"AioBox_DIO_Changed_Event出错:"
+
ex
.
ToString
());
}
}
private
void
UpdateAllDI
(
string
ip
,
Status
[]
sta
)
{
if
(
sta
!=
null
&&
sta
.
Length
>=
DefaultDICount
)
{
lock
(
DIValueMap
)
{
if
(
AIOMap
[
ip
].
IsConn
)
Dictionary
<
Addr
,
Status
>
keyValues
=
new
Dictionary
<
Addr
,
Status
>();
if
(
DIValueMap
.
ContainsKey
(
ip
))
{
DIValueMap
.
Remove
(
ip
);
}
ushort
i
=
0
;
foreach
(
Status
s
in
sta
)
{
return
true
;
Addr
addr
=
GetAddr
(
i
);
keyValues
.
Add
(
addr
,
s
);
i
++;
}
DIValueMap
.
Add
(
ip
,
keyValues
);
}
}
catch
(
Exception
ex
)
}
private
void
UpdateAllDO
(
string
ip
,
Status
[]
sta
)
{
if
(
sta
!=
null
&&
sta
.
Length
>=
DefaultDOCount
)
{
LogUtil
.
error
(
LOGGER
,
"出错啦:"
+
ex
.
ToString
());
lock
(
DOLock
)
{
Dictionary
<
Addr
,
Status
>
keyValues
=
new
Dictionary
<
Addr
,
Status
>();
if
(
DOValueMap
.
ContainsKey
(
ip
))
{
DOValueMap
.
Remove
(
ip
);
}
ushort
i
=
(
ushort
)(
DefaultDICount
);
foreach
(
Status
s
in
sta
)
{
Addr
addr
=
GetAddr
(
i
);
keyValues
.
Add
(
addr
,
s
);
i
++;
}
DOValueMap
.
Add
(
ip
,
keyValues
);
}
}
return
false
;
}
private
void
timer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
...
...
@@ -204,42 +254,106 @@ namespace OnlineStore.DeviceLibrary
}
public
override
void
ReadAllDI
(
string
ioIp
,
byte
slaveId
)
{
try
{
AIOBOX_32
aioBox
=
getAIO
(
ioIp
);
if
(
aioBox
!=
null
)
{
Status
[]
allDi
;
if
(
aioBox
.
ReadDI
(
Addr
.
DI_1
,
DefaultDICount
,
out
allDi
))
{
UpdateAllDI
(
ioIp
,
allDi
);
}
else
{
LogUtil
.
error
(
"读取所有DI出错:"
+
aioBox
.
ErrInfo
);
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ReadAllDI出错:"
+
ioIp
);
}
}
public
override
void
ReadAllDO
(
string
ioIp
,
byte
slaveId
)
{
{
try
{
AIOBOX_32
aioBox
=
getAIO
(
ioIp
);
if
(
aioBox
!=
null
)
{
Status
[]
allDO
;
if
(
aioBox
.
ReadDO
(
Addr
.
DO_1
,
DefaultDOCount
,
out
allDO
))
{
UpdateAllDO
(
ioIp
,
allDO
);
}
else
{
LogUtil
.
error
(
"读取所有DO出错:"
+
aioBox
.
ErrInfo
);
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ReadAllDO出错:"
+
ioIp
);
}
}
public
override
IO_VALUE
GetDOValue
(
string
ioIP
,
byte
slaveId
,
ushort
StartAddress
)
{
IO_VALUE
value
=
IO_VALUE
.
LOW
;
AIOBOX_32
aioBox
=
getAIO
(
ioIP
);
if
(
aioBox
!=
null
)
IO_VALUE
value
=
IO_VALUE
.
LOW
;
try
{
Status
status
=
Status
.
Off
;
aioBox
.
ReadDO
(
GetAddr
(
StartAddress
),
out
status
);
if
(
status
.
Equals
(
Status
.
On
))
AIOBOX_32
aioBox
=
getAIO
(
ioIP
);
if
(
aioBox
!=
null
)
{
value
=
IO_VALUE
.
HIGH
;
Status
status
=
Status
.
Off
;
Addr
addr
=
GetAddr
(
StartAddress
);
if
(
DOValueMap
.
ContainsKey
(
ioIP
)
&&
DOValueMap
[
ioIP
].
TryGetValue
(
addr
,
out
status
))
{
}
else
{
aioBox
.
ReadDO
(
addr
,
out
status
);
}
if
(
status
.
Equals
(
Status
.
On
))
{
value
=
IO_VALUE
.
HIGH
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ReadDI 出错:"
+
ex
.
ToString
());
}
return
value
;
}
public
override
IO_VALUE
GetDIValue
(
string
ioIP
,
byte
slaveId
,
ushort
StartAddress
)
{
IO_VALUE
value
=
IO_VALUE
.
LOW
;
AIOBOX_32
aioBox
=
getAIO
(
ioIP
);
if
(
aioBox
!=
null
)
try
{
Status
status
=
Status
.
Off
;
aioBox
.
ReadDI
(
GetAddr
(
StartAddress
),
out
status
);
if
(
status
.
Equals
(
Status
.
On
))
AIOBOX_32
aioBox
=
getAIO
(
ioIP
);
if
(
aioBox
!=
null
)
{
value
=
IO_VALUE
.
HIGH
;
Status
status
=
Status
.
Off
;
Addr
addr
=
GetAddr
(
StartAddress
);
if
(
DIValueMap
.
ContainsKey
(
ioIP
)
&&
DIValueMap
[
ioIP
].
TryGetValue
(
addr
,
out
status
))
{
}
else
{
aioBox
.
ReadDI
(
addr
,
out
status
);
}
if
(
status
.
Equals
(
Status
.
On
))
{
value
=
IO_VALUE
.
HIGH
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ReadDI 出错:"
+
ex
.
ToString
());
}
return
value
;
}
public
override
IO_VALUE
GetIOValue
(
ConfigIO
configIO
)
...
...
@@ -265,7 +379,7 @@ namespace OnlineStore.DeviceLibrary
private
Addr
GetAddr
(
ushort
StartAddress
)
{
return
(
Addr
)(
StartAddress
-
1
);
return
(
Addr
)(
StartAddress
);
}
private
Status
GetStatus
(
IO_VALUE
onOff
)
{
...
...
source/DeviceLibrary/StoreConfig/AC/StoreConfig.csv
查看文件 @
55efe6d
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID
DI,急停,SuddenStop_BTN,
200,192.168.200.10
,0,急停,X01,DI-01,0
DI,复位,Reset_BTN,
201,192.168.200.10
,0,复位,X02,DI-02,0
DI,自动,AutoRun_Single,2
02,192.168.200.10
,0,自动,X03,DI-03,0
DI,气压检测,Airpressure_Check,
203,192.168.200.10
,0,气压检测,X04,DI-04,0
DI,料仓门口料盘检测,TrayCheck_Door,
204,192.168.200.10
,0,料仓门口料盘检测,X05,DI-05,0
DI,叉子料盘检测,TrayCheck_Fixture,
205,192.168.200.10
,0,叉子料盘检测,X06,DI-06,0
DI,进料口门上升端,Door_Up,
206,192.168.200.10
,0,进料口门上升端,X07,DI-07,0
DI,进料口门下降端,Door_Down,
207,192.168.200.10
,0,进料口门下降端,X08,DI-08,0
DI,定位气缸1上升端,LocationCylinder_Up,
208,192.168.200.10
,0,定位气缸1上升端,X09,DI-09,0
DI,定位气缸1下降端,LocationCylinder_Down,
209,192.168.200.10
,0,定位气缸1下降端,X10,DI-10,0
DI,前门限位,Door_LimitSingle,
210,192.168.200.10
,0,前门限位,X11,DI-11,0
,,Right_Door_LimitSingle,
211,192.168.200.10
,0,右侧门限位,X12,DI-12,0
DI,安全光栅,SafetyLightCurtains,
212,192.168.200.10
,0,安全光栅,X13,DI-13,0
,,TrayCheck_4,
213,192.168.200.10
,0,,X14,DI-14,0
DI,定位气缸2上升端,LocationCylinder2_Up,
214,192.168.200.10
,0,定位气缸2上升端,X15,DI-15,0
DI,定位气缸2下降端,LocationCylinder2_Down,
215,192.168.200.10
,0,定位气缸2下降端,X16,DI-16,0
DO,自动指示灯,AutoRun_HddLed,1
00,192.168.200.10
,0,自动指示灯,Y01,DO-01,0
DO,故障指示灯,Alarm_HddLed,1
01,192.168.200.10
,0,故障指示灯,Y02,DO-02,0
DO,待机指示灯,RunSign_HddLed,1
02,192.168.200.10
,0,待机指示灯,Y03,DO-03,0
DO,吹气SOL ON,StartOrStopBlow,1
03,192.168.200.10
,0,吹气SOL ON,Y04,DO-04,0
DO,料仓运转ON,Run_Sign,
104,192.168.200.10
,0,料仓运转ON,Y05,DO-05,0
DO,轴2刹车电源ON,Axis_Brake,
105,192.168.200.10
,0,轴2刹车电源ON,Y06,DO-06,0
DO,进料口门上升SOL,Door_Up,
106,192.168.200.10
,0,进料口门上升SOL,Y07,DO-07,0
DO,进料口门下降SOL,Door_Down,
107,192.168.200.10
,0,进料口门下降SOL,Y08,DO-08,0
DO,定位上升SOL,LocationCylinder_Up,
108,192.168.200.10
,0,定位上升SOL,Y09,DO-09,0
DO,定位下降SOL,LocationCylinder_Down,
109,192.168.200.10
,0,定位下降SOL,Y10,DO-10,0
DO,相机照明开,CameraLight_Power,
110,192.168.200.10
,0,相机照明开,Y11,DO-11,0
,,,
111,192.168.200.10
,0,,Y12,DO-12,0
,,,
112,192.168.200.10
,0,,Y13,DO-13,0
,,,
113,192.168.200.10
,0,,Y14,DO-14,0
DO,门禁功能屏蔽,DisableDoorControl,
114,192.168.200.10
,0,门禁功能屏蔽,Y15,DO-15,0
,,,
115,192.168.200.10
,0,,Y16,DO-16,0
DI,急停,SuddenStop_BTN,
0,192.168.200.11
,0,急停,X01,DI-01,0
DI,复位,Reset_BTN,
1,192.168.200.11
,0,复位,X02,DI-02,0
DI,自动,AutoRun_Single,2
,192.168.200.11
,0,自动,X03,DI-03,0
DI,气压检测,Airpressure_Check,
3,192.168.200.11
,0,气压检测,X04,DI-04,0
DI,料仓门口料盘检测,TrayCheck_Door,
4,192.168.200.11
,0,料仓门口料盘检测,X05,DI-05,0
DI,叉子料盘检测,TrayCheck_Fixture,
5,192.168.200.11
,0,叉子料盘检测,X06,DI-06,0
DI,进料口门上升端,Door_Up,
6,192.168.200.11
,0,进料口门上升端,X07,DI-07,0
DI,进料口门下降端,Door_Down,
7,192.168.200.11
,0,进料口门下降端,X08,DI-08,0
DI,定位气缸1上升端,LocationCylinder_Up,
8,192.168.200.11
,0,定位气缸1上升端,X09,DI-09,0
DI,定位气缸1下降端,LocationCylinder_Down,
9,192.168.200.11
,0,定位气缸1下降端,X10,DI-10,0
DI,前门限位,Door_LimitSingle,
10,192.168.200.11
,0,前门限位,X11,DI-11,0
,,Right_Door_LimitSingle,
11,192.168.200.11
,0,右侧门限位,X12,DI-12,0
DI,安全光栅,SafetyLightCurtains,
12,192.168.200.11
,0,安全光栅,X13,DI-13,0
,,TrayCheck_4,
13,192.168.200.11
,0,,X14,DI-14,0
DI,定位气缸2上升端,LocationCylinder2_Up,
14,192.168.200.11
,0,定位气缸2上升端,X15,DI-15,0
DI,定位气缸2下降端,LocationCylinder2_Down,
15,192.168.200.11
,0,定位气缸2下降端,X16,DI-16,0
DO,自动指示灯,AutoRun_HddLed,1
6,192.168.200.11
,0,自动指示灯,Y01,DO-01,0
DO,故障指示灯,Alarm_HddLed,1
7,192.168.200.11
,0,故障指示灯,Y02,DO-02,0
DO,待机指示灯,RunSign_HddLed,1
8,192.168.200.11
,0,待机指示灯,Y03,DO-03,0
DO,吹气SOL ON,StartOrStopBlow,1
9,192.168.200.11
,0,吹气SOL ON,Y04,DO-04,0
DO,料仓运转ON,Run_Sign,
20,192.168.200.11
,0,料仓运转ON,Y05,DO-05,0
DO,轴2刹车电源ON,Axis_Brake,
21,192.168.200.11
,0,轴2刹车电源ON,Y06,DO-06,0
DO,进料口门上升SOL,Door_Up,
22,192.168.200.11
,0,进料口门上升SOL,Y07,DO-07,0
DO,进料口门下降SOL,Door_Down,
23,192.168.200.11
,0,进料口门下降SOL,Y08,DO-08,0
DO,定位上升SOL,LocationCylinder_Up,
24,192.168.200.11
,0,定位上升SOL,Y09,DO-09,0
DO,定位下降SOL,LocationCylinder_Down,
25,192.168.200.11
,0,定位下降SOL,Y10,DO-10,0
DO,相机照明开,CameraLight_Power,
26,192.168.200.11
,0,相机照明开,Y11,DO-11,0
,,,
27,192.168.200.11
,0,,Y12,DO-12,0
,,,
28,192.168.200.11
,0,,Y13,DO-13,0
,,,
29,192.168.200.11
,0,,Y14,DO-14,0
DO,门禁功能屏蔽,DisableDoorControl,
30,192.168.200.11
,0,门禁功能屏蔽,Y15,DO-15,0
,,,
31,192.168.200.11
,0,,Y16,DO-16,0
AXIS,(轴一)旋转轴,Middle_Axis,1,COM1,0,,,,
AXIS,(轴二)升降轴轴,UpDown_Axis,2,COM1,0,,,,
AXIS,(轴三)进出轴,InOut_Axis,3,COM1,0,,,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.200.14,,,,,,
,,
PRO,扫码枪IP,Scanner_Ip,192.168.200.13,,,,,,
,,
PRO,扫码枪端口号,Scanner_Port,51236,,,,,,
,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,423300,,,,,,
,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,450000,,,,,,
,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,450000,,,,,,
,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,423300,,,,,,
,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,-199999,,,,,,
,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,500,,,,,,
,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,0,,,,,,
,,
PRO,是否使用定位气缸,IsHasLocationCylinder,1,,,,,,
,,
PRO,是否有左右侧门,IsHasDoorLimit,0,,,,,,
,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,0,,,,, ,
,,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,
,,
PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
,,
PRO,预警温度,WarnTemperate,80,,,,,,
,,
PRO,预警湿度,WarnHumidity,80,,,,,,
,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,40,,,,,,
,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,2500,,,,,,
,,
PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,2500,,,,,,
,,
PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,800,,,,,,
,,
PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,60,,,,,,
,,
PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,500,,,,,,
,,
PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,40,,,,,,
,,
PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,1500,,,,,,
,,
PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,1500,,,,,,
,,
PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,,
,,
PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,,
,,
PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,,
,,
PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,40,,,,,,
,,
PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,2500,,,,,,
,,
PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,2500,,,,,,
,,
PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,20,,,,,,
,,
PRO,(轴三)进出轴原点高速,InoutAxis_HomeHighSpeed,60,,,,,,
,,
PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,200,,,,,,
,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,800,,,,,,
,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,800,,,,,,
,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,800,,,,,,
,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,200,,,,,,
,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,800,,,,,,
,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,200,,,,,,
,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,200,,,,,,
,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,200,,,,,,
,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,400,,,,,,
,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,400,,,,,,
,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,150,,,,,,
,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,150,,,,,,
,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,150,,,,,,
,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最大值,MiddleAxis_ErrorCountMax,1000,,,,,,
,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最大值,UpdownAxis_ErrorCountMax,1000,,,,,,
,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最大值,InoutAxis_ErrorCountMax,1000,,,,,,
,,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,
,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,10000,,,,,,
,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,
,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,
,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,
,,
PRO,(轴二)升降轴最小限位,UpdownAxis_PositionMin,0,,,,,,
,,
PRO,(轴三)进出轴最小限位,InoutAxis_PositionMin,0,,,,,,
,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,
,,
PRO,(轴二)升降轴最大限位,UpdownAxis_PositionMax,0,,,,,,
,,
PRO,(轴三)进出轴最大限位,InoutAxis_PositionMax,0,,,,,,
,,
PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,
,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,
,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,
,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,
,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.200.14,,,,,,
PRO,扫码枪IP,Scanner_Ip,192.168.200.13,,,,,,
PRO,扫码枪端口号,Scanner_Port,51236,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,423300,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,450000,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,450000,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,423300,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,-199999,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,500,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,0,,,,,,
PRO,是否使用定位气缸,IsHasLocationCylinder,1,,,,,,
PRO,是否有左右侧门,IsHasDoorLimit,0,,,,,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,0,,,,, ,
PRO,设备是否处于调试状态(1=调试,0=正常),IsInDebug,0,,,,,,
PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,40,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,2500,,,,,,
PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,2500,,,,,,
PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,800,,,,,,
PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,60,,,,,,
PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,500,,,,,,
PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,40,,,,,,
PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,1500,,,,,,
PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,1500,,,,,,
PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,,
PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,,
PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,,
PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,40,,,,,,
PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,2500,,,,,,
PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,2500,,,,,,
PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,20,,,,,,
PRO,(轴三)进出轴原点高速,InoutAxis_HomeHighSpeed,60,,,,,,
PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,200,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,800,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,800,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,800,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,200,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,800,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,200,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,200,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,200,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,400,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,400,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,150,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,150,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,150,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最大值,MiddleAxis_ErrorCountMax,1000,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最大值,UpdownAxis_ErrorCountMax,1000,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最大值,InoutAxis_ErrorCountMax,1000,,,,,,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,10000,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,
PRO,(轴二)升降轴最小限位,UpdownAxis_PositionMin,0,,,,,,
PRO,(轴三)进出轴最小限位,InoutAxis_PositionMin,0,,,,,,
PRO,(轴一)旋转轴最大限位,MiddleAxis_PositionMax,0,,,,,,
PRO,(轴二)升降轴最大限位,UpdownAxis_PositionMax,0,,,,,,
PRO,(轴三)进出轴最大限位,InoutAxis_PositionMax,0,,,,,,
PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
查看文件 @
55efe6d
...
...
@@ -85,24 +85,25 @@ namespace OnlineStore.DeviceLibrary
//初始化摄像机配置
string
nameStr
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
CameraName
);
string
codeStr
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
CodeType
);
CodeManager
.
LoadConfig
(
nameStr
,
codeStr
);
//初始化 //连接设备
IOManager
.
instance
.
ConnectionKND
(
Config
.
DIODeviceNameList
);
timersTimer
.
Enabled
=
false
;
int
isAuto
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
if
(
isAuto
==
1
)
{
timersTimer
.
Enabled
=
true
;
}
CodeManager
.
LoadConfig
(
nameStr
,
codeStr
);
Task
.
Factory
.
StartNew
(
delegate
{
IOManager
.
instance
.
ConnectionKND
(
Config
.
DIODeviceNameList
);
timersTimer
.
Enabled
=
false
;
int
isAuto
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
if
(
isAuto
==
1
)
{
timersTimer
.
Enabled
=
true
;
}
Thread
.
Sleep
(
300
);
//默认三个灯都亮
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
300
);
//默认三个灯都亮
KNDIOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
KNDIOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
LogUtil
.
info
(
"软件启动:默认三个灯都亮"
);
});
}
private
void
IoCheckTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
...
...
source/DeviceLibrary/halcon/CodeManager.cs
查看文件 @
55efe6d
...
...
@@ -49,7 +49,7 @@ namespace OnlineStore.DeviceLibrary
LoadCamera
();
CodeLibrary
.
HDCodeLearnHelper
.
LoadConfig
(
nameStr
,
codeStr
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"解析摄像机配置出错:"
+
ex
.
ToString
());
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论