Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ae2be12f
由
LN
编写于
2020-05-26 15:47:55 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
iodll更新
1 个父辈
b0293b59
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
59 行增加
和
202 行删除
RC1266-AutoCountMachine/dll/Asa.IOModule.AIOBOX.dll
RC1266-AutoCountMachine/dll/Asa.IOModule.AIOBOX.xml
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOXManager.cs
RC1266-AutoCountMachine/dll/Asa.IOModule.AIOBOX.dll
查看文件 @
ae2be12
此文件类型无法预览
RC1266-AutoCountMachine/dll/Asa.IOModule.AIOBOX.xml
查看文件 @
ae2be12
...
@@ -6,19 +6,7 @@
...
@@ -6,19 +6,7 @@
<members>
<members>
<member
name=
"T:Asa.IOModule.AIOBOX"
>
<member
name=
"T:Asa.IOModule.AIOBOX"
>
<summary>
<summary>
AIOBOX操作类
零点IO模块操作类
</summary>
</member>
<member
name=
"F:Asa.IOModule.AIOBOX.SEND_SLEEP"
>
<summary>
每条命令发送的间隔
不能小于15,会出现IO接收不到的情况
小于30时,会出现接收数据连包的情况
</summary>
</member>
<member
name=
"F:Asa.IOModule.AIOBOX.PORT"
>
<summary>
ModBus端口
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.DIO_Changed"
>
<member
name=
"T:Asa.IOModule.AIOBOX.DIO_Changed"
>
...
@@ -38,77 +26,39 @@
...
@@ -38,77 +26,39 @@
自动读取DO事件触发
自动读取DO事件触发
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.AIO_Changed"
>
<member
name=
"M:Asa.IOModule.AIOBOX.#ctor(Asa.IOModule.Box_Type,System.Int32,Asa.IOModule.Box_Type,System.Int32)"
>
<summary>
自动读取AI委托
</summary>
<param
name=
"box"
>
AIOBOX
</param>
<param
name=
"val"
>
所有AI的值
</param>
</member>
<member
name=
"E:Asa.IOModule.AIOBOX.AI_Changed_Event"
>
<summary>
自动读取AI事件触发
</summary>
</member>
<member
name=
"E:Asa.IOModule.AIOBOX.AO_Changed_Event"
>
<summary>
<summary>
自动读取AO事件触发
零点IO模块操作类
</summary>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.#ctor"
>
<summary>
AIOBOX
</summary>
</summary>
<param
name=
"input"
>
输入类型
</param>
<param
name=
"inputCount"
>
输入数量
</param>
<param
name=
"output"
>
输出类型
</param>
<param
name=
"outputCount"
>
输出数量
</param>
</member>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.IP"
>
<member
name=
"P:Asa.IOModule.AIOBOX.IP"
>
<summary>
<summary>
IP地址
IP地址
</summary>
</summary>
</member>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.IsConn"
>
<member
name=
"P:Asa.IOModule.AIOBOX.Upload"
>
<summary>
是否连接
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.ErrInfo"
>
<summary>
错误信息
</summary>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.LogPath(System.String,Asa.IOModule.LogType)"
>
<summary>
日志路径,连接前设置路径会自动保存日志
</summary>
<param
name=
"path"
>
文件夹路径
</param>
<param
name=
"type"
>
输出类型
</param>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)"
>
<summary>
<summary>
设置输入端
输入主动上传
</summary>
</summary>
<param
name=
"type"
>
类型
</param>
<param
name=
"count"
>
数量
</param>
</member>
</member>
<member
name=
"
M:Asa.IOModule.AIOBOX.SetOutput(Asa.IOModule.Box_Type,System.Int32)
"
>
<member
name=
"
P:Asa.IOModule.AIOBOX.IsConn
"
>
<summary>
<summary>
设置输出端
是否连接
</summary>
</summary>
<param
name=
"type"
>
类型
</param>
<param
name=
"count"
>
数量
</param>
</member>
</member>
<member
name=
"
M:Asa.IOModule.AIOBOX.AutoIP(System.String)
"
>
<member
name=
"
P:Asa.IOModule.AIOBOX.MonitorDI
"
>
<summary>
<summary>
自动获取IP地址,未连接前使用,必须在同一网段
监控DI输入,索引数组
</summary>
</summary>
<param
name=
"localIP"
>
本地IP地址
</param>
<returns></returns>
</member>
</member>
<member
name=
"
M:Asa.IOModule.AIOBOX.CheckIP(System.String)
"
>
<member
name=
"
P:Asa.IOModule.AIOBOX.MonitorDO
"
>
<summary>
<summary>
检查IP地址
监控DO输出,索引数组
</summary>
</summary>
<param
name=
"ip"
></param>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.Connect"
>
<member
name=
"M:Asa.IOModule.AIOBOX.Connect"
>
<summary>
<summary>
...
@@ -120,26 +70,6 @@
...
@@ -120,26 +70,6 @@
关闭连接
关闭连接
</summary>
</summary>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.AutoReadInput(System.Boolean,System.Int32)"
>
<summary>
自动读取输入端并触发事件(主动上传数据 = 禁止)
</summary>
<param
name=
"read"
>
是否自动读取
</param>
<param
name=
"sleep"
>
间隔,必须大于等于15ms
</param>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.AutoReadInput(System.Boolean)"
>
<summary>
自动读取输入端并触发事件(主动上传数据 = 使能)
</summary>
<param
name=
"read"
>
是否自动读取
</param>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.AutoReadOutput(System.Boolean,System.Int32)"
>
<summary>
自动读取输出端,触发事件
</summary>
<param
name=
"read"
>
是否自动读取
</param>
<param
name=
"sleep"
>
间隔,必须大于等于15ms
</param>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta)"
>
<member
name=
"M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta)"
>
<summary>
<summary>
相反状态(ON/OFF)
相反状态(ON/OFF)
...
@@ -221,75 +151,68 @@
...
@@ -221,75 +151,68 @@
<param
name=
"sta"
></param>
<param
name=
"sta"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.GetLocalIP"
>
<summary>
获取本地IPv4地址
</summary>
<returns></returns>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.Send"
>
<member
name=
"M:Asa.IOModule.AIOBOX.Send"
>
<summary>
<summary>
发送命令
发送命令
线程
</summary>
</summary>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
Receive
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
GetReadDI_Command
"
>
<summary>
<summary>
接收
命令
获取ReadDI的
命令
</summary>
</summary>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
ReadSingle(System.Byte[])
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
GetReadDO_Command
"
>
<summary>
<summary>
读取写入单个DO,功能码5
获取ReadDO的命令
</summary>
</summary>
<
param
name=
"buff"
></param
>
<
returns></returns
>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
ReadDO(System.Byte[])
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
Listen
"
>
<summary>
<summary>
读取所有DO状态,功能码1
监听网络线程
</summary>
</summary>
<param
name=
"buff"
></param>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
ReadDI
(System.Byte[])"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
CommandProcess
(System.Byte[])"
>
<summary>
<summary>
读取所有DI状态,功能码2
接收到的命令处理方法,(task多线程)
</summary>
</summary>
<param
name=
"cmd"
></param>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.Re
adAI(System.Byte[])
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.Re
conn
"
>
<summary>
<summary>
读取所有AI的值,功能码4
重连线程
</summary>
</summary>
<param
name=
"buff"
></param>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
Command
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
Open
"
>
<summary>
<summary>
命令,前7个字节
打开socket建立连接
</summary>
</summary>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.TriggerDIO"
>
<member
name=
"M:Asa.IOModule.AIOBOX.CheckIP(System.String)"
>
<summary>
触发DIO改变事件
</summary>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.AutoReadInput"
>
<summary>
<summary>
自动读取输入端线程
检查IP地址
</summary>
</summary>
<param
name=
"ip"
></param>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.Auto
ReadOutput
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.Auto
IP(System.String)
"
>
<summary>
<summary>
自动
读取输出端线程
自动
获取IP地址,未连接前使用,必须在同一网段
</summary>
</summary>
<param
name=
"localIP"
>
本地IP地址
</param>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
Listen
"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
GetIP
"
>
<summary>
<summary>
监听结果线程
获取IO模块IP地址
</summary>
</summary>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.
TestMetho
d"
>
<member
name=
"M:Asa.IOModule.AIOBOX.
Comman
d"
>
<summary>
<summary>
测试方法锁
命令,前7个字节
</summary>
</summary>
<returns></returns>
</member>
</member>
<member
name=
"T:Asa.IOModule.Box_Type"
>
<member
name=
"T:Asa.IOModule.Box_Type"
>
<summary>
<summary>
...
@@ -331,62 +254,5 @@
...
@@ -331,62 +254,5 @@
闭合,打开,高电平
闭合,打开,高电平
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.LogType"
>
<summary>
日志类型
</summary>
</member>
<member
name=
"F:Asa.IOModule.LogType.OnlyError"
>
<summary>
仅错误信息
</summary>
</member>
<member
name=
"F:Asa.IOModule.LogType.All"
>
<summary>
所有
</summary>
</member>
<member
name=
"T:Asa.IOModule.LogFile"
>
<summary>
日志操作类
</summary>
</member>
<member
name=
"M:Asa.IOModule.LogFile.#ctor(System.String,System.String)"
>
<summary>
日志
</summary>
<param
name=
"path"
>
文件夹路径
</param>
<param
name=
"ip"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.Close"
>
<summary>
关闭文件
</summary>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutError(System.String)"
>
<summary>
输出错误
</summary>
<param
name=
"s"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutInfo(System.String)"
>
<summary>
输出信息
</summary>
<param
name=
"s"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutData(System.String,System.Byte[])"
>
<summary>
输出数据
</summary>
<param
name=
"tr"
></param>
<param
name=
"buff"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutData(System.String)"
>
<summary>
输出数据
</summary>
<param
name=
"s"
></param>
</member>
</members>
</members>
</doc>
</doc>
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOXManager.cs
查看文件 @
ae2be12
...
@@ -65,37 +65,28 @@ namespace OnlineStore.DeviceLibrary
...
@@ -65,37 +65,28 @@ namespace OnlineStore.DeviceLibrary
{
{
DOValueMap
.
Remove
(
ioIp
);
DOValueMap
.
Remove
(
ioIp
);
}
}
int
DIMS
=
ConfigAppSettings
.
GetIntValue
(
"DIMS"
);
if
(
DIMS
<
20
)
{
DIMS
=
20
;
}
int
DOMS
=
ConfigAppSettings
.
GetIntValue
(
"DOMS"
);
if
(
DOMS
<
200
)
{
DOMS
=
200
;
}
int
DILength
=
RobotManager
.
Config
.
GetDILength
(
ioIp
);
int
DILength
=
RobotManager
.
Config
.
GetDILength
(
ioIp
);
int
DOLength
=
RobotManager
.
Config
.
GetDOLength
(
ioIp
);
int
DOLength
=
RobotManager
.
Config
.
GetDOLength
(
ioIp
);
string
logName
=
"IO模块["
+
ioIp
+
"] DI["
+
DILength
+
"] DO["
+
DOLength
+
"]
,["
+
DIMS
+
"] ["
+
DOMS
+
"]
"
;
string
logName
=
"IO模块["
+
ioIp
+
"] DI["
+
DILength
+
"] DO["
+
DOLength
+
"]
"
;
try
try
{
{
aioBox
=
new
AIOBOX
();
//aioBox = new AIOBOX();
//aioBox.LogPath(Application.StartupPath + @"\logs\aio\", LogType.OnlyError);
aioBox
.
LogPath
(
Application
.
StartupPath
+
@"\logs\aio\"
,
LogType
.
OnlyError
);
//aioBox.IP = ioIp;
aioBox
.
IP
=
ioIp
;
//aioBox.SetInput(Asa.IOModule.Box_Type.DI, DILength)
;
//aioBox.SetOutput(Asa.IOModule.Box_Type.DO, DOLength);
aioBox
.
SetInput
(
Asa
.
IOModule
.
Box_Type
.
DI
,
DILength
);
////DI主动上传
aioBox
.
SetOutput
(
Asa
.
IOModule
.
Box_Type
.
DO
,
DOLength
);
//aioBox.AutoReadInput(true
);
//
DI主动上传
//
aioBox.AutoReadOutput(false, DOMS);
aioBox
.
AutoReadInput
(
true
);
aioBox
=
new
AIOBOX
(
Asa
.
IOModule
.
Box_Type
.
DI
,
DILength
,
Asa
.
IOModule
.
Box_Type
.
DO
,
DOLength
);
aioBox
.
AutoReadOutput
(
false
,
DOMS
);
aioBox
.
IP
=
ioIp
;
aioBox
.
DI_Changed_Event
+=
AioBox_DI_Changed_Event
;
;
aioBox
.
DI_Changed_Event
+=
AioBox_DI_Changed_Event
;
;
aioBox
.
DO_Changed_Event
+=
AioBox_DO_Changed_Event
;
aioBox
.
DO_Changed_Event
+=
AioBox_DO_Changed_Event
;
LogUtil
.
info
(
"开始连接:"
+
logName
+
":"
+
aioBox
.
ErrInfo
);
LogUtil
.
info
(
"开始连接:"
+
logName
+
":"
);
aioBox
.
Connect
();
aioBox
.
Connect
();
AIOMap
.
Add
(
ioIp
,
aioBox
);
AIOMap
.
Add
(
ioIp
,
aioBox
);
...
@@ -263,7 +254,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -263,7 +254,7 @@ namespace OnlineStore.DeviceLibrary
bool
result
=
aioBox
.
WriteDO
(
StartAddress
,
GetBox_Sta
(
onOff
));
bool
result
=
aioBox
.
WriteDO
(
StartAddress
,
GetBox_Sta
(
onOff
));
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
error
(
"AIO WriteSingleDO ["
+
ioIp
+
"] ["
+
StartAddress
+
"] 失败:"
+
aioBox
.
ErrInfo
);
LogUtil
.
error
(
"AIO WriteSingleDO ["
+
ioIp
+
"] ["
+
StartAddress
+
"] 失败:"
);
}
}
}
}
else
else
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论