Commit a7690f64 张东亮

更新io库

1 个父辈 acb7d13f
<?xml version="1.0"?>
<doc>
<assembly>
<name>Asa.IOModule.AIOBOX</name>
</assembly>
<members>
<member name="T:Asa.IOModule.AIOBOX">
<summary>
AIOBOX操作类
</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>
</member>
<member name="T:Asa.IOModule.AIOBOX.DIO_Changed">
<summary>
自动读取DI委托
</summary>
<param name="box">AIOBOX</param>
<param name="sta">所有DI状态</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.DI_Changed_Event">
<summary>
自动读取DI事件触发
</summary>
</member>
<member name="E:Asa.IOModule.AIOBOX.DO_Changed_Event">
<summary>
自动读取DO事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.AIO_Changed">
<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>
自动读取AO事件触发
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.#ctor">
<summary>
AIOBOX
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.IP">
<summary>
IP地址
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.IsConn">
<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>
<param name="type">类型</param>
<param name="count">数量</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.SetOutput(Asa.IOModule.Box_Type,System.Int32)">
<summary>
设置输出端
</summary>
<param name="type">类型</param>
<param name="count">数量</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoIP(System.String)">
<summary>
自动获取IP地址,未连接前使用,必须在同一网段
</summary>
<param name="localIP">本地IP地址</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.CheckIP(System.String)">
<summary>
检查IP地址
</summary>
<param name="ip"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Connect">
<summary>
连接
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.Close">
<summary>
关闭连接
</summary>
</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)">
<summary>
相反状态(ON/OFF)
</summary>
<param name="sta"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta@)">
<summary>
相反状态(ON/OFF)
</summary>
<param name="sta"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Int32)">
<summary>
读取单个DI输入状态(ON/OFF)
</summary>
<param name="add">输入地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Int32,System.Int32)">
<summary>
读取多个DI输入状态(ON/OFF)
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Int32)">
<summary>
读取单个AI模拟量的值
</summary>
<param name="add">模拟量地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Int32,System.Int32)">
<summary>
读取多个AI模拟量的值
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Int32)">
<summary>
读取单个DO输出状态(ON/OFF)
</summary>
<param name="add">输出地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Int32,System.Int32)">
<summary>
读取多个DO输出状态(ON/OFF)
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAO(System.Int32)">
<summary>
读取单个AO模拟量的值
</summary>
<param name="add">输出地址,从0开始</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAO(System.Int32,System.Int32)">
<summary>
读取多个AO模拟量的值
</summary>
<param name="add">起始地址,从0开始</param>
<param name="count">数量</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.WriteDO(System.Int32,Asa.IOModule.Box_Sta)">
<summary>
写入单个DO输出状态(ON/OFF)
</summary>
<param name="add">输出地址,从0开始</param>
<param name="sta"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.GetLocalIP">
<summary>
获取本地IPv4地址
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Send">
<summary>
发送命令
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.Receive">
<summary>
接收命令
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadSingle(System.Byte[])">
<summary>
读取写入单个DO,功能码5
</summary>
<param name="buff"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDO(System.Byte[])">
<summary>
读取所有DO状态,功能码1
</summary>
<param name="buff"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Byte[])">
<summary>
读取所有DI状态,功能码2
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Byte[])">
<summary>
读取所有AI的值,功能码4
</summary>
<param name="buff"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.Command">
<summary>
命令,前7个字节
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.TriggerDIO">
<summary>
触发DIO改变事件
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadInput">
<summary>
自动读取输入端线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadOutput">
<summary>
自动读取输出端线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.Listen">
<summary>
监听结果线程
</summary>
</member>
<member name="T:Asa.IOModule.Box_Type">
<summary>
IO模块类型
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.DI">
<summary>
数字信号输入
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.DO">
<summary>
数字信号输出
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.AI">
<summary>
模拟量输入
</summary>
</member>
<member name="F:Asa.IOModule.Box_Type.AO">
<summary>
模拟量输出
</summary>
</member>
<member name="T:Asa.IOModule.Box_Sta">
<summary>
IO模块寄存器状态
</summary>
</member>
<member name="F:Asa.IOModule.Box_Sta.Off">
<summary>
断开,关闭,低电平
</summary>
</member>
<member name="F:Asa.IOModule.Box_Sta.On">
<summary>
闭合,打开,高电平
</summary>
</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>
</doc>
...@@ -85,21 +85,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -85,21 +85,14 @@ namespace OnlineStore.DeviceLibrary
try try
{ {
aioBox = new AIOBOX(); aioBox = new AIOBOX();
aioBox.LogPath(Application.StartupPath + @"\logs\aio\", LogType.OnlyError);
aioBox.IP = ioIp; aioBox.IP = ioIp;
aioBox.SetType(Box_Type.DI, DILength, Box_Type.DO, DOLength);
aioBox.SetInput(Asa.IOModule.Box_Type.DI, DILength);
aioBox.SetOutput(Asa.IOModule.Box_Type.DO, DOLength);
//DI主动上传 //DI主动上传
aioBox.AutoReadInput(true); aioBox.Upload = 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);
...@@ -268,7 +261,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -268,7 +261,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
......
...@@ -554,6 +554,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -554,6 +554,7 @@ namespace OnlineStore.DeviceLibrary
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.HIGH);
LogUtil.info(" L1->L2 横移机构电机运行"); LogUtil.info(" L1->L2 横移机构电机运行");
} }
Stopwatch stopwatch = new Stopwatch(); Stopwatch stopwatch = new Stopwatch();
...@@ -565,6 +566,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -565,6 +566,7 @@ namespace OnlineStore.DeviceLibrary
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.HIGH);
LogUtil.info(" L1->L2 横移机构转移料串超时"); LogUtil.info(" L1->L2 横移机构转移料串超时");
} }
} }
...@@ -573,6 +575,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -573,6 +575,7 @@ namespace OnlineStore.DeviceLibrary
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.LOW);
LogUtil.info(" L1->L2 横移电机停止"); LogUtil.info(" L1->L2 横移电机停止");
Thread.Sleep(1000); Thread.Sleep(1000);
IOManager.IOMove(IO_Type.L1_Traverse_Up_SOL, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_Up_SOL, IO_VALUE.LOW);
...@@ -600,7 +603,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -600,7 +603,7 @@ namespace OnlineStore.DeviceLibrary
} }
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.HIGH);
LogUtil.info(" L1->L3 横移机构电机运行"); LogUtil.info(" L1->L3 横移机构电机运行");
...@@ -612,7 +615,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -612,7 +615,6 @@ namespace OnlineStore.DeviceLibrary
{ {
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.HIGH);
LogUtil.info(" L1->L3 横移机构转移料架超时"); LogUtil.info(" L1->L3 横移机构转移料架超时");
} }
...@@ -621,7 +623,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -621,7 +623,6 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(2000); Thread.Sleep(2000);
IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_BackRun, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_RollerRun, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Traverse_Run, IO_VALUE.LOW);
LogUtil.info(" L1->L3 横移电机停止"); LogUtil.info(" L1->L3 横移电机停止");
Thread.Sleep(1000); Thread.Sleep(1000);
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</appSettings> </appSettings>
<log4net> <log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/vmiLine.log" /> <file type="log4net.Util.PatternString" value="logs/Line/vmiLine.log" />
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true" /> <appendToFile value="true" />
<rollingStyle value="Date" /> <rollingStyle value="Date" />
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</layout> </layout>
</appender> </appender>
<appender name="TheRFID" type="log4net.Appender.RollingFileAppender"> <appender name="TheRFID" type="log4net.Appender.RollingFileAppender">
<file value="logs/TheRFID-vmi.log" /> <file value="logs/RFID/TheRFID-vmi.log" />
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true" /> <appendToFile value="true" />
<rollingStyle value="Date" /> <rollingStyle value="Date" />
...@@ -47,10 +47,24 @@ ...@@ -47,10 +47,24 @@
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
</appender> </appender>
<logger name="RollingLogFileAppender"> <appender name="AIOBOX" type="log4net.Appender.RollingFileAppender">
<file value="logs/AIO/AIOBOX.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" />
</layout>
</appender>
<logger name="AIOBOX">
<level value="Info" /> <level value="Info" />
<appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="AIOBOX" />
</logger> </logger>
<logger name="RollingLogFileAppender">
<level value="Info" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
<logger name="TheRFID"> <logger name="TheRFID">
<level value="Error" /> <level value="Error" />
<appender-ref ref="TheRFID" /> <appender-ref ref="TheRFID" />
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!