Commit bbb2be98 张东亮

等待输出io信号失败时自动重写

1 个父辈 ef793232
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
自动读取AO事件触发 自动读取AO事件触发
</summary> </summary>
</member> </member>
<member name="M:Asa.IOModule.AIOBOX.#ctor"> <member name="M:Asa.IOModule.AIOBOX.#ctor(System.String)">
<summary> <summary>
AIOBOX AIOBOX
</summary> </summary>
...@@ -70,18 +70,6 @@ ...@@ -70,18 +70,6 @@
是否连接 是否连接
</summary> </summary>
</member> </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)"> <member name="M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)">
<summary> <summary>
设置输入端 设置输入端
...@@ -286,6 +274,11 @@ ...@@ -286,6 +274,11 @@
监听结果线程 监听结果线程
</summary> </summary>
</member> </member>
<member name="M:Asa.IOModule.AIOBOX.TestMethod">
<summary>
测试方法锁
</summary>
</member>
<member name="T:Asa.IOModule.Box_Type"> <member name="T:Asa.IOModule.Box_Type">
<summary> <summary>
IO模块类型 IO模块类型
...@@ -326,62 +319,5 @@ ...@@ -326,62 +319,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>
此文件类型无法预览
<?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>
文件属性发生变化
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace> <RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>Common</AssemblyName> <AssemblyName>Common</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
......
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID 类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID
PRO,IO模块对应的DI数量,IO_DILength,192.168.103.21#16,,,,,, PRO,IO模块对应的DI数量,IO_DILength,192.168.103.21#16,,,,,,
PRO,模块对应的DO数量,IO_DOLength,192.168.103.21#61,,,,,, PRO,模块对应的DO数量,IO_DOLength,192.168.103.21#16,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,192.168.103.21,,,,,, PRO,IO模块IP,PRO_AOI_IP_1,192.168.103.21,,,,,,
PRO,IO模块IP,PRO_AOI_IP_2,192.168.103.22,,,,,, PRO,IO模块IP,PRO_AOI_IP_2,192.168.103.22,,,,,,
PRO,IO模块IP,PRO_AOI_IP_3,192.168.103.23,,,,,, PRO,IO模块IP,PRO_AOI_IP_3,192.168.103.23,,,,,,
......
...@@ -151,13 +151,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -151,13 +151,14 @@ namespace OnlineStore.DeviceLibrary
{ {
} }
public static WaitResultInfo WaitIO(string ioType, IO_VALUE ioValue) public static WaitResultInfo WaitIO(string ioType, IO_VALUE ioValue,bool isDO=false)
{ {
WaitResultInfo wait = new WaitResultInfo(); WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 0; wait.CanWhileMoveCount = 0;
wait.WaitType = 2; wait.WaitType = 2;
wait.IoType = ioType; wait.IoType = ioType;
wait.IoValue = ioValue; wait.IoValue = ioValue;
wait.IsDO= isDO;
return wait; return wait;
} }
...@@ -223,8 +224,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -223,8 +224,10 @@ namespace OnlineStore.DeviceLibrary
/// 等待的毫秒 /// 等待的毫秒
/// </summary> /// </summary>
public int TimeMSeconds { get; set; } public int TimeMSeconds { get; set; }
/// <summary>
/// 是否是输出
/// </summary>
public bool IsDO { get; set; } = false;
/// <summary> /// <summary>
/// 是否已经结束 /// 是否已经结束
/// </summary> /// </summary>
......
...@@ -47,8 +47,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -47,8 +47,8 @@ namespace OnlineStore.DeviceLibrary
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH,true));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
} }
if (isCheckMove) if (isCheckMove)
...@@ -59,6 +59,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -59,6 +59,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
IOMove(IoLowType, IO_VALUE.LOW); IOMove(IoLowType, IO_VALUE.LOW);
Thread.Sleep(100);
IOMove(IoHighType, IO_VALUE.HIGH); IOMove(IoHighType, IO_VALUE.HIGH);
} }
} }
...@@ -202,6 +203,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -202,6 +203,11 @@ namespace OnlineStore.DeviceLibrary
IOMove(wait.IoType, wait.IoValue); IOMove(wait.IoType, wait.IoValue);
LogInfo(" [" + moveInfo.MoveType + "][" + moveInfo.MoveStep + "]重写DO: " + wait.ToStr()); LogInfo(" [" + moveInfo.MoveType + "][" + moveInfo.MoveStep + "]重写DO: " + wait.ToStr());
} }
if (wait.IsDO)
{
IOMove(wait.IoType, wait.IoValue);
LogInfo(" [" + moveInfo.MoveType + "][" + moveInfo.MoveStep + "]重写DO: " + wait.ToStr());
}
TimeSpan rwSpan = DateTime.Now - preRWTime; TimeSpan rwSpan = DateTime.Now - preRWTime;
//一分钟还未检测到 //一分钟还未检测到
if (span.TotalSeconds > LineManager.Config.IOSingle_TimerOut) if (span.TotalSeconds > LineManager.Config.IOSingle_TimerOut)
......
...@@ -83,7 +83,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -83,7 +83,7 @@ namespace OnlineStore.DeviceLibrary
{ {
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.SetInput(Asa.IOModule.Box_Type.DI, DILength);
...@@ -96,7 +96,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -96,7 +96,7 @@ namespace OnlineStore.DeviceLibrary
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);
...@@ -265,7 +265,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -265,7 +265,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
......
...@@ -588,18 +588,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -588,18 +588,18 @@ namespace OnlineStore.DeviceLibrary
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.HIGH)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.HIGH,true));
} }
CheckAndMove(IO_Type.S1_LineBackRun, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_LineBackRun, IO_VALUE.LOW);
IOMove(IO_Type.S1_LineRun, IO_VALUE.HIGH); CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.HIGH);
} }
private void S1BackRun(LineMoveInfo moveInfo = null) private void S1BackRun(LineMoveInfo moveInfo = null)
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.LOW)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.LOW,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.HIGH)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.HIGH,true));
} }
CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.S1_LineBackRun, IO_VALUE.HIGH); IOMove(IO_Type.S1_LineBackRun, IO_VALUE.HIGH);
...@@ -608,8 +608,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -608,8 +608,8 @@ namespace OnlineStore.DeviceLibrary
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.LOW)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.LOW,true));
} }
CheckAndMove(IO_Type.S1_LineBackRun, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_LineBackRun, IO_VALUE.LOW);
CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
......
...@@ -279,10 +279,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -279,10 +279,10 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.LLown_LineRun, IO_VALUE.HIGH); IOMove(IO_Type.LLown_LineRun, IO_VALUE.HIGH);
IOMove(IO_Type.M_LineRun, IO_VALUE.HIGH); IOMove(IO_Type.M_LineRun, IO_VALUE.HIGH);
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LeftStopCylinder, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LeftStopCylinder, IO_VALUE.HIGH,true));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_RightStopCylinder, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_RightStopCylinder, IO_VALUE.HIGH,true));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, IO_VALUE.HIGH,true));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineRun, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineRun, IO_VALUE.HIGH,true));
// SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLow_StopCheck3, IO_VALUE.LOW)); // SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLow_StopCheck3, IO_VALUE.LOW));
CheckAndMove(IO_Type.S1_PosStopCylinder, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_PosStopCylinder, IO_VALUE.LOW);
...@@ -425,16 +425,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -425,16 +425,16 @@ namespace OnlineStore.DeviceLibrary
{ {
IOMove(IO_Type.LHigh_LineRun, IO_VALUE.LOW); IOMove(IO_Type.LHigh_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.M_LineRun, IO_VALUE.LOW); IOMove(IO_Type.M_LineRun, IO_VALUE.LOW);
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, IO_VALUE.LOW)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, IO_VALUE.LOW,true));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineRun, IO_VALUE.LOW)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineRun, IO_VALUE.LOW,true));
} }
else else
{ {
IOMove(IO_Type.RHigh_LineRun, IO_VALUE.LOW); IOMove(IO_Type.RHigh_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.M_LineBackRun, IO_VALUE.LOW); IOMove(IO_Type.M_LineBackRun, IO_VALUE.LOW);
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RHigh_LineRun, IO_VALUE.LOW)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.RHigh_LineRun, IO_VALUE.LOW,true));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineBackRun, IO_VALUE.LOW)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineBackRun, IO_VALUE.LOW,true));
} }
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
} }
...@@ -975,17 +975,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -975,17 +975,21 @@ namespace OnlineStore.DeviceLibrary
S1Log(" " + movetype + ":" + S1SName + " 先到右侧,S1后阻挡上升,S1正转"); S1Log(" " + movetype + ":" + S1SName + " 先到右侧,S1后阻挡上升,S1正转");
S2CanGetShelf = ShelfIsCanGo; S2CanGetShelf = ShelfIsCanGo;
IOMove(IO_Type.AftS1_StopCylinder, IO_VALUE.LOW); IOMove(IO_Type.AftS1_StopCylinder, IO_VALUE.LOW);
Thread.Sleep(100);
IOMove(IO_Type.S1_PosStopCylinder, IO_VALUE.HIGH); IOMove(IO_Type.S1_PosStopCylinder, IO_VALUE.HIGH);
if (!S1_LeftShelfId.Equals("")) if (!S1_LeftShelfId.Equals(""))
{ {
IOMove(IO_Type.PreS1_PosStopCylinder, IO_VALUE.LOW); IOMove(IO_Type.PreS1_PosStopCylinder, IO_VALUE.LOW);
} }
CylinderMove(SOneMoveInfo, IO_Type.S1_TopCylinderUp, IO_Type.S1_TopCylinderDown); CylinderMove(SOneMoveInfo, IO_Type.S1_TopCylinderUp, IO_Type.S1_TopCylinderDown);
Thread.Sleep(100);
S1LineRun(SOneMoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_TopCylinderDown1, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_TopCylinderDown1, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_TopCylinderDown2, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_TopCylinderDown2, IO_VALUE.HIGH));
S1LineRun();
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.AftS1_StopCheck, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.AftS1_StopCheck, IO_VALUE.HIGH));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_PosStopCheck, IO_VALUE.LOW)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_PosStopCheck, IO_VALUE.LOW));
Thread.Sleep(100);
S1LineRun();
} }
private void Start_LeftShelfToS1(MoveStep nextStep, string movetype) private void Start_LeftShelfToS1(MoveStep nextStep, string movetype)
......
...@@ -272,7 +272,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -272,7 +272,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.Line_StopCylinder, IO_VALUE.HIGH); IOMove(IO_Type.Line_StopCylinder, IO_VALUE.HIGH);
IOMove(IO_Type.L_InLineRun, IO_VALUE.HIGH); IOMove(IO_Type.L_InLineRun, IO_VALUE.HIGH);
LeftLineMove(IO_VALUE.HIGH, MoveInfo); LeftLineMove(IO_VALUE.HIGH, MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.L_InLineRun, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.L_InLineRun, IO_VALUE.HIGH,true));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Line_InCheck, IO_VALUE.LOW)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Line_InCheck, IO_VALUE.LOW));
} }
else if (MoveInfo.MoveStep.Equals(MoveStep.SI04_InStopDown)) else if (MoveInfo.MoveStep.Equals(MoveStep.SI04_InStopDown))
...@@ -406,7 +406,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -406,7 +406,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, value)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, value,true));
} }
CheckAndMove(IO_Type.LHigh_LineRun, value); CheckAndMove(IO_Type.LHigh_LineRun, value);
} }
...@@ -414,7 +414,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -414,7 +414,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (moveInfo != null) if (moveInfo != null)
{ {
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, value)); moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, value,true));
} }
CheckAndMove(IO_Type.LLown_LineRun, value); CheckAndMove(IO_Type.LLown_LineRun, value);
} }
......
...@@ -132,6 +132,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -132,6 +132,7 @@ namespace OnlineStore.DeviceLibrary
CurrPoint = ""; CurrPoint = "";
NeedShelf = ""; NeedShelf = "";
// DiStop.Stop(); // DiStop.Stop();
warnmsgDatetime = DateTime.Now;
return; return;
} }
...@@ -178,7 +179,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -178,7 +179,7 @@ namespace OnlineStore.DeviceLibrary
{ {
CurrPoint = ""; CurrPoint = "";
NeedShelf = ""; NeedShelf = "";
if (!outMsg.Equals("") && (DateTime.Now - warnmsgDatetime).TotalSeconds > 3) if (!outMsg.Equals("") && (DateTime.Now - warnmsgDatetime).TotalSeconds > 30)
{ {
WarnMsg = " getLocation " + outMsg; WarnMsg = " getLocation " + outMsg;
......
...@@ -65,7 +65,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -65,7 +65,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
s1RLeaveStep.Msg = "工位1放行料架完成"; s1RLeaveStep.Msg = "工位1放行料架完成";
//CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW); CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
s1RLeaveStep.ToNextStep(S1_R_LEAVE_SHELF_STEP.NONE); s1RLeaveStep.ToNextStep(S1_R_LEAVE_SHELF_STEP.NONE);
//右侧下方线体是否停止,要根据情况来 //右侧下方线体是否停止,要根据情况来
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S1); outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S1);
......
...@@ -51,9 +51,20 @@ ...@@ -51,9 +51,20 @@
<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" />
<param name="MaxSizeRollBackups" value="15"/>
<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="TheRFID"> <logger name="TheRFID">
<level value="Error" /> <level value="Error" />
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace> <RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName> <AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
......
...@@ -19,7 +19,7 @@ namespace UserFromControl.Properties { ...@@ -19,7 +19,7 @@ namespace UserFromControl.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。 // (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources { internal class Resources {
...@@ -47,8 +47,8 @@ namespace UserFromControl.Properties { ...@@ -47,8 +47,8 @@ namespace UserFromControl.Properties {
} }
/// <summary> /// <summary>
/// 使用此强类型资源类,为所有资源查找 /// 重写当前线程的 CurrentUICulture 属性,对
/// 重写当前线程的 CurrentUICulture 属性 /// 使用此强类型资源类的所有资源查找执行重写
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture { internal static global::System.Globalization.CultureInfo Culture {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UserFromControl</RootNamespace> <RootNamespace>UserFromControl</RootNamespace>
<AssemblyName>UserFromControl</AssemblyName> <AssemblyName>UserFromControl</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!