Commit ae2be12f LN

iodll更新

1 个父辈 b0293b59
...@@ -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.ReadAI(System.Byte[])"> <member name="M:Asa.IOModule.AIOBOX.Reconn">
<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.AutoReadOutput"> <member name="M:Asa.IOModule.AIOBOX.AutoIP(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.TestMethod"> <member name="M:Asa.IOModule.AIOBOX.Command">
<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>
...@@ -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.SetInput(Asa.IOModule.Box_Type.DI, DILength);
//aioBox.SetOutput(Asa.IOModule.Box_Type.DO, DOLength);
////DI主动上传
//aioBox.AutoReadInput(true);
//aioBox.AutoReadOutput(false, DOMS);
aioBox = new AIOBOX(Asa.IOModule.Box_Type.DI, DILength, Asa.IOModule.Box_Type.DO, DOLength);
aioBox.IP = ioIp; aioBox.IP = ioIp;
aioBox.SetInput(Asa.IOModule.Box_Type.DI, DILength);
aioBox.SetOutput(Asa.IOModule.Box_Type.DO, DOLength);
//DI主动上传
aioBox.AutoReadInput(true);
aioBox.AutoReadOutput(false, DOMS);
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!