Commit bbb2be98 张东亮

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

1 个父辈 ef793232
......@@ -55,7 +55,7 @@
自动读取AO事件触发
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.#ctor">
<member name="M:Asa.IOModule.AIOBOX.#ctor(System.String)">
<summary>
AIOBOX
</summary>
......@@ -70,18 +70,6 @@
是否连接
</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>
设置输入端
......@@ -286,6 +274,11 @@
监听结果线程
</summary>
</member>
<member name="M:Asa.IOModule.AIOBOX.TestMethod">
<summary>
测试方法锁
</summary>
</member>
<member name="T:Asa.IOModule.Box_Type">
<summary>
IO模块类型
......@@ -326,62 +319,5 @@
闭合,打开,高电平
</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 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>Common</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID
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_2,192.168.103.22,,,,,,
PRO,IO模块IP,PRO_AOI_IP_3,192.168.103.23,,,,,,
......
......@@ -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();
wait.CanWhileMoveCount = 0;
wait.WaitType = 2;
wait.IoType = ioType;
wait.IoValue = ioValue;
wait.IsDO= isDO;
return wait;
}
......@@ -223,8 +224,10 @@ namespace OnlineStore.DeviceLibrary
/// 等待的毫秒
/// </summary>
public int TimeMSeconds { get; set; }
/// <summary>
/// 是否是输出
/// </summary>
public bool IsDO { get; set; } = false;
/// <summary>
/// 是否已经结束
/// </summary>
......
......@@ -47,8 +47,8 @@ namespace OnlineStore.DeviceLibrary
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH,true));
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
}
if (isCheckMove)
......@@ -59,6 +59,7 @@ namespace OnlineStore.DeviceLibrary
else
{
IOMove(IoLowType, IO_VALUE.LOW);
Thread.Sleep(100);
IOMove(IoHighType, IO_VALUE.HIGH);
}
}
......@@ -202,6 +203,11 @@ namespace OnlineStore.DeviceLibrary
IOMove(wait.IoType, wait.IoValue);
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;
//一分钟还未检测到
if (span.TotalSeconds > LineManager.Config.IOSingle_TimerOut)
......
......@@ -83,7 +83,7 @@ namespace OnlineStore.DeviceLibrary
{
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);
......@@ -96,7 +96,7 @@ namespace OnlineStore.DeviceLibrary
aioBox.DI_Changed_Event += AioBox_DI_Changed_Event; ;
aioBox.DO_Changed_Event += AioBox_DO_Changed_Event;
LogUtil.info("开始连接:" + logName + ":" + aioBox.ErrInfo);
LogUtil.info("开始连接:" + logName);
aioBox.Connect();
AIOMap.Add(ioIp, aioBox);
......@@ -265,7 +265,7 @@ namespace OnlineStore.DeviceLibrary
bool result = aioBox.WriteDO(StartAddress, GetBox_Sta(onOff));
if (!result)
{
LogUtil.error("AIO WriteSingleDO [" + ioIp + "] [" + StartAddress + "] 失败:" + aioBox.ErrInfo);
LogUtil.error("AIO WriteSingleDO [" + ioIp + "] [" + StartAddress + "] 失败");
}
}
else
......
......@@ -588,18 +588,18 @@ namespace OnlineStore.DeviceLibrary
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.HIGH));
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,true));
}
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)
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.HIGH));
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,true));
}
CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.S1_LineBackRun, IO_VALUE.HIGH);
......@@ -608,8 +608,8 @@ namespace OnlineStore.DeviceLibrary
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineBackRun, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_LineRun, 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,true));
}
CheckAndMove(IO_Type.S1_LineBackRun, IO_VALUE.LOW);
CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
......
......@@ -279,10 +279,10 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.LLown_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_RightStopCylinder, IO_VALUE.HIGH));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, IO_VALUE.HIGH));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.M_LineRun, 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,true));
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,true));
// SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLow_StopCheck3, IO_VALUE.LOW));
CheckAndMove(IO_Type.S1_PosStopCylinder, IO_VALUE.LOW);
......@@ -425,16 +425,16 @@ namespace OnlineStore.DeviceLibrary
{
IOMove(IO_Type.LHigh_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.M_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,true));
}
else
{
IOMove(IO_Type.RHigh_LineRun, 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.M_LineBackRun, 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,true));
}
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
}
......@@ -975,17 +975,21 @@ namespace OnlineStore.DeviceLibrary
S1Log(" " + movetype + ":" + S1SName + " 先到右侧,S1后阻挡上升,S1正转");
S2CanGetShelf = ShelfIsCanGo;
IOMove(IO_Type.AftS1_StopCylinder, IO_VALUE.LOW);
Thread.Sleep(100);
IOMove(IO_Type.S1_PosStopCylinder, IO_VALUE.HIGH);
if (!S1_LeftShelfId.Equals(""))
{
IOMove(IO_Type.PreS1_PosStopCylinder, IO_VALUE.LOW);
}
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_TopCylinderDown2, IO_VALUE.HIGH));
S1LineRun();
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.AftS1_StopCheck, IO_VALUE.HIGH));
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.S1_PosStopCheck, IO_VALUE.LOW));
Thread.Sleep(100);
S1LineRun();
}
private void Start_LeftShelfToS1(MoveStep nextStep, string movetype)
......
......@@ -272,7 +272,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.Line_StopCylinder, IO_VALUE.HIGH);
IOMove(IO_Type.L_InLineRun, IO_VALUE.HIGH);
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));
}
else if (MoveInfo.MoveStep.Equals(MoveStep.SI04_InStopDown))
......@@ -406,7 +406,7 @@ namespace OnlineStore.DeviceLibrary
{
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);
}
......@@ -414,7 +414,7 @@ namespace OnlineStore.DeviceLibrary
{
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);
}
......
......@@ -132,6 +132,7 @@ namespace OnlineStore.DeviceLibrary
CurrPoint = "";
NeedShelf = "";
// DiStop.Stop();
warnmsgDatetime = DateTime.Now;
return;
}
......@@ -178,7 +179,7 @@ namespace OnlineStore.DeviceLibrary
{
CurrPoint = "";
NeedShelf = "";
if (!outMsg.Equals("") && (DateTime.Now - warnmsgDatetime).TotalSeconds > 3)
if (!outMsg.Equals("") && (DateTime.Now - warnmsgDatetime).TotalSeconds > 30)
{
WarnMsg = " getLocation " + outMsg;
......
......@@ -65,7 +65,7 @@ namespace OnlineStore.DeviceLibrary
else
{
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);
//右侧下方线体是否停止,要根据情况来
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S1);
......
......@@ -51,9 +51,20 @@
<conversionPattern value="[%date][%t]%-5p %m%n" />
</layout>
</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" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="AIOBOX" />
</logger>
<logger name="TheRFID">
<level value="Error" />
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -19,7 +19,7 @@ namespace UserFromControl.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /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.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
......@@ -47,8 +47,8 @@ namespace UserFromControl.Properties {
}
/// <summary>
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UserFromControl</RootNamespace>
<AssemblyName>UserFromControl</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!