Commit 7dc4d387 张东亮

0118

1 个父辈 8f0dfe34
......@@ -19,7 +19,7 @@
<add key="DIMS" value="60" />
<add key="DOMS" value="300" />
<!--AGV调度服务器地址-->
<add key="AgvServerIp" value="127.0.0.1" />
<add key="AgvServerIp" value="10.85.162.40" />
<!--是否调试状态-->
<add key="IsInDebug" value="1" />
<add key ="Agv_Log_Open" value ="1"/>
......
此文件类型无法预览
......@@ -506,7 +506,7 @@
this.panel1.Controls.Add(this.chbAuto);
this.panel1.Location = new System.Drawing.Point(5, 15);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1160, 48);
this.panel1.Size = new System.Drawing.Size(1160, 65);
this.panel1.TabIndex = 273;
//
// chbMoveStop
......
此文件的差异太大,无法显示。
类型,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义,SlaveID,
PRO,IO模块对应的DI数量,IO_DILength,10.85.199.21#16,,,,,,,
PRO,模块对应的DO数量,IO_DOLength,10.85.199.21#16,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,10.85.199.21,,,,,,,
PRO,IO模块对应的DI数量,IO_DILength,10.85.197.124#8,,,,,,,
PRO,模块对应的DO数量,IO_DOLength,10.85.197.124#8,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,10.85.197.4,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_2,10.85.197.124,,,,,,,
,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X01,DI-01,0,
DI,复位,Reset_BTN,1,PRO_AOI_IP_1,0,复位,X02,DI-02,0,
......@@ -19,10 +20,11 @@ DI,进料线阻挡检测,L1_StopCheck,12,PRO_AOI_IP_1,0,进料线阻挡检测,X13,DI-13,0,
DI,进料线横移检测,L1_OutCheck,13,PRO_AOI_IP_1,0,进料线横移检测,X14,DI-14,0,
DI,出料线横移检测,L2_InCheck,14,PRO_AOI_IP_1,0,出料线横移检测,X15,DI-15,0,
DI,出料线阻挡检测,L2_StopCheck,15,PRO_AOI_IP_1,0,出料线阻挡检测,X16,DI-16,0,
DI,出料线出口检测,L2_OutCheck,16,PRO_AOI_IP_1,0,出料线出口检测,X17,DI-17,0,
DI,空料串线横移检测,L3_InCheck,17,PRO_AOI_IP_1,0,空料串线横移检测,X18,DI-18,0,
DI,空料串线阻挡检测,L3_StopCheck,18,PRO_AOI_IP_1,0,空料串线阻挡检测,X19,DI-19,0,
DI,空料串线出口检测,L3_OutCheck,19,PRO_AOI_IP_1,0,空料串线出口检测,X20,DI-20,0,
,,,,,,,,,,
DI,出料线出口检测,L2_OutCheck,0,PRO_AOI_IP_2,0,出料线出口检测,X17,DI-17,0,
DI,空料串线横移检测,L3_InCheck,1,PRO_AOI_IP_2,0,空料串线横移检测,X18,DI-18,0,
DI,空料串线阻挡检测,L3_StopCheck,2,PRO_AOI_IP_2,0,空料串线阻挡检测,X19,DI-19,0,
DI,空料串线出口检测,L3_OutCheck,3,PRO_AOI_IP_2,0,空料串线出口检测,X20,DI-20,0,
,,,,,,,,,,
DO,线体运行状态灯,Run_Status_Light,0,PRO_AOI_IP_1,0,线体运行状态灯,Y01,DO-01,0,
DO,进料横移电机正转,L1_Traverse_Run,1,PRO_AOI_IP_1,0,进料横移电机正转,Y02,DO-02,0,
......@@ -40,15 +42,16 @@ DO,出料线横移机构下降,L2_Traverse_Down_SOL,12,PRO_AOI_IP_1,0,出料线横移机构下降,
DO,空料串线横移机构上升,L3_Traverse_Up_SOL,13,PRO_AOI_IP_1,0,空料串线横移机构上升,Y14,DO-14,0,
DO,空料串线横移机构下降,L3_Traverse_Down_SOL,14,PRO_AOI_IP_1,0,空料串线横移机构下降,Y15,DO-15,0,
DO,进料线阻挡下降,L1_StopDown,15,PRO_AOI_IP_1,0,进料线阻挡下降,Y16,DO-16,0,
DO,进料线出口缓冲阻挡,L1_OutStopDown,16,PRO_AOI_IP_1,0,进料线出口缓冲阻挡,Y17,DO-17,0,
DO,出料线阻挡下降,L2_StopDown,17,PRO_AOI_IP_1,0,出料线阻挡下降,Y18,DO-18,0,
DO,出料线出口阻挡下降,L2_OutStopDown,18,PRO_AOI_IP_1,0,出料线出口阻挡下降,Y19,DO-19,0,
DO,空料串线阻挡下降,L3_StopDown,19,PRO_AOI_IP_1,0,空料串线阻挡下降,Y20,DO-20,0,
DO,空料串线出口阻挡下降,L3_OutStopDown,20,PRO_AOI_IP_1,0,空料串线出口阻挡下降,Y21,DO-21,0,
,,,,,,,,,,
DO,进料线出口缓冲阻挡,L1_OutStopDown,0,PRO_AOI_IP_2,0,进料线出口缓冲阻挡,Y17,DO-17,0,
DO,出料线阻挡下降,L2_StopDown,1,PRO_AOI_IP_2,0,出料线阻挡下降,Y18,DO-18,0,
DO,出料线出口阻挡下降,L2_OutStopDown,2,PRO_AOI_IP_2,0,出料线出口阻挡下降,Y19,DO-19,0,
DO,空料串线阻挡下降,L3_StopDown,3,PRO_AOI_IP_2,0,空料串线阻挡下降,Y20,DO-20,0,
DO,空料串线出口阻挡下降,L3_OutStopDown,4,PRO_AOI_IP_2,0,空料串线出口阻挡下降,Y21,DO-21,0,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,进料线AGV节点名称,L1_AgvName,A8,,,,,,,
PRO,出料线AGV节点名称,L2_AgvName,A9,,,,,,,
PRO,空料串线AGV节点名称,L3_AgvName,A7,,,,,,,
PRO,分盘线出口RFIDIP,L2Out_RFIDIP,10.85.199.130,,,,,, ,
PRO,分盘线出口RFIDIP,L2Out_RFIDIP,192.168.0.1,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,60,,,,,,,
......@@ -153,6 +153,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_Run, IO_VALUE.HIGH);
UpdateSleep(false);
break;
case MoveStep.DIST_H_LineRun:
......@@ -284,6 +285,7 @@ namespace OnlineStore.DeviceLibrary
private Stopwatch ol_noshelfWatch = new Stopwatch();
private Stopwatch ol_noshelfWatch1 = new Stopwatch();
private Stopwatch ol_noshelfWatch2 = new Stopwatch();
private DateTime ol_lastSendShelfTime = DateTime.Now;
private int StopDownMS = 1500;
/// <summary>
......@@ -305,7 +307,7 @@ namespace OnlineStore.DeviceLibrary
if (LineManager.checkWatch(ol_noshelfWatch, 1000))
{
IOManager.CIOMove(IO_Type.L2_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 分盘2线体出口无料架,下降 [" + IO_Type.L2_StopDown + "] [" + StopDownMS + "] 秒");
LogUtil.info(" 出料线体出口无料架,下降 [" + IO_Type.L2_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L2_StopDown, StopDownMS);
}
......@@ -317,12 +319,25 @@ namespace OnlineStore.DeviceLibrary
if (LineManager.checkWatch(ol_noshelfWatch1, 1000))
{
IOManager.CIOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 分盘1线体出口无料架,下降 [" + IO_Type.L1_StopDown + "] [" + StopDownMS + "] 秒");
LogUtil.info(" 进料线体出口无料架,下降 [" + IO_Type.L1_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L1_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L1_StopDown, StopDownMS);
}
}
else if (IOManager.IOValue(IO_Type.L3_StopCheck).Equals(IO_VALUE.HIGH) &&
IOManager.IOValue(IO_Type.L3_OutCheck).Equals(IO_VALUE.LOW) && span.TotalSeconds > 3)
{
//如果出料线体出口无料架,放一个料架到出口
if (LineManager.checkWatch(ol_noshelfWatch1, 1000))
{
IOManager.CIOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 空料串线体出口无料架,下降 [" + IO_Type.L3_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.L3_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L3_StopDown, StopDownMS);
}
}
else if (span.TotalMilliseconds > StopDownMS)
{
ol_noshelfWatch.Stop();
......@@ -466,25 +481,18 @@ namespace OnlineStore.DeviceLibrary
public DeviceLibrary.bean.RunStepInfo tranverseStep = new bean.RunStepInfo();
public void TranverseProcess()
{
//人工取料
if (IOManager.IOValue(IO_Type.L2_ManualRecSig).Equals(IO_VALUE.HIGH) || IOManager.IOValue(IO_Type.L3_ManualRecSig).Equals(IO_VALUE.HIGH))
{
if (tranverseStep.IsStep(tranverseStep.S1))
{
if (tranverseStep.IsStep(tranverseStep.S1))
{
tranverseStep.Execute();
}
else
{
if(tranverseStep.IsFinished())
{
tranverseStep.Execute();
}
}
tranverseStep.Execute();
}
}
if (tranverseStep.IsFinished())
{
tranverseStep.Execute();
}
}
public void IoCheckProcess()
{
......
......@@ -237,6 +237,7 @@ namespace OnlineStore.DeviceLibrary
IsSleep = true;
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L3_Run, IO_VALUE.LOW);
}
else
{
......@@ -244,6 +245,7 @@ namespace OnlineStore.DeviceLibrary
LastBusyTime = DateTime.Now;
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L3_Run, IO_VALUE.HIGH);
};
}
#endregion
......
......@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary.bean
......@@ -15,15 +16,16 @@ namespace OnlineStore.DeviceLibrary.bean
public IStep S3_Out;
public IStep S3_Empty;
public IStep S4;
private object runLocObj = new object();
private object isFinishLocObj = new object();
public RunStepInfo()
{
Step = new S1_None(this);
S1 = new S1_None(this);
S2 = new S2_CheckTarLine(this);
S3_Empty = new S3_ToEmptyLine(this);
S3_Out = new S3_ToOutLine(this);
S4 = new S4_Finish(this);
Step=S1;
}
public bool IsStep(IStep step)
{
......@@ -31,11 +33,45 @@ namespace OnlineStore.DeviceLibrary.bean
}
public void Execute()
{
Step.Execute();
if(Monitor.TryEnter(runLocObj))
{
try
{
Step.Run();
}
catch(Exception ex)
{
Common.LogUtil.error("RunStepInfo", ex);
}
finally
{
Monitor.Exit(runLocObj);
}
}
}
public bool IsFinished()
{
return Step.IsFinished();
if (Monitor.TryEnter(isFinishLocObj))
{
bool finish = false;
try
{
Step.Execute();
finish = Step.IsFinished();
}
catch (Exception ex)
{
Common.LogUtil.error("IsFinished", ex);
}
finally
{
Monitor.Exit(isFinishLocObj);
}
return finish;
}
else
return false;
}
}
}
......@@ -12,6 +12,7 @@ namespace OnlineStore.DeviceLibrary.bean
protected RunStepInfo runStepInfo;
protected string msg = "";
protected IStep preStep;
public bool isRun = false;
public string Msg
{
get { return msg; }
......@@ -21,9 +22,9 @@ namespace OnlineStore.DeviceLibrary.bean
{
if (!value.Equals(msg))
{
Common.LogUtil.info(msg);
msg = value;
Common.LogUtil.info(value);
}
msg = value;
}
}
......@@ -32,6 +33,15 @@ namespace OnlineStore.DeviceLibrary.bean
{
this.runStepInfo = runStepInfo;
}
public void Run()
{
if (!isRun)
{
Execute();
//isRun = true;
}
}
/// <summary>
/// 执行该步骤
/// </summary>
......@@ -41,8 +51,9 @@ namespace OnlineStore.DeviceLibrary.bean
/// </summary>
public virtual void ToNextStep(IStep nextStep)
{
preStep = runStepInfo.Step;
runStepInfo.Step = nextStep;
runStepInfo.Step.preStep = this;
isRun = false;
}
/// <summary>
/// 结束流程
......@@ -50,6 +61,7 @@ namespace OnlineStore.DeviceLibrary.bean
public virtual void EndStep()
{
runStepInfo.Step = runStepInfo.S1;
isRun = false;
}
/// <summary>
/// 检查该步骤是否完成
......
......@@ -28,9 +28,9 @@ namespace OnlineStore.DeviceLibrary.bean
public override bool IsFinished()
{
if (IOManager.IOValue(IO_Type.L1_UpDown_Up_Sig).Equals(IO_VALUE.LOW) && IOManager.IOValue(IO_Type.L1_Traverse_Down_SOL).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.L1_UpDown_Up_Sig).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L1_UpDown_Down_Sig).Equals(IO_VALUE.LOW))
{
msg = "入料线体横移上升";
Msg = "入料线体横移上升";
ToNextStep(runStepInfo.S2);
return true;
}
......
......@@ -39,15 +39,15 @@ namespace OnlineStore.DeviceLibrary.bean
public override bool IsFinished()
{
if(IOManager.IOValue(IO_Type.L2_UpDown_Up_Sig).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L2_Traverse_Down_SOL).Equals(IO_VALUE.LOW))
if(IOManager.IOValue(IO_Type.L2_UpDown_Up_Sig).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L2_UpDown_Down_Sig).Equals(IO_VALUE.LOW))
{
msg = "出料线体横移上升";
Msg = "出料线体横移上升";
ToNextStep(runStepInfo.S3_Out);
return true;
}
else if(IOManager.IOValue(IO_Type.L3_UpDown_Up_Sig).Equals(IO_VALUE.HIGH)&& IOManager.IOValue(IO_Type.L3_UpDown_Down_Sig).Equals(IO_VALUE.LOW))
{
msg = "空料串线体横移上升";
Msg = "空料串线体横移上升";
ToNextStep(runStepInfo.S3_Empty);
return true;
}
......
......@@ -27,12 +27,12 @@ namespace OnlineStore.DeviceLibrary.bean
{
if (IOManager.IOValue(IO_Type.L3_InCheck).Equals(IO_VALUE.HIGH))
{
msg = "料串流到空料串线体";
Msg = "料串流到空料串线体";
Thread.Sleep(3000);
this.ToNextStep(runStepInfo.S4);
return true;
}
msg = "横移反转,等待料串流到空料串线体";
Msg = "横移反转,等待料串流到空料串线体";
return false;
}
}
......
......@@ -27,12 +27,12 @@ namespace OnlineStore.DeviceLibrary.bean
{
if (IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.HIGH))
{
msg = "料串流到出料线体";
Msg = "料串流到出料线体";
Thread.Sleep(3000);
this.ToNextStep(runStepInfo.S4);
return true;
}
msg = "横移正转,等待料串流到出料线体";
Msg = "横移正转,等待料串流到出料线体";
return false;
}
}
......
......@@ -26,6 +26,8 @@ namespace OnlineStore.DeviceLibrary.bean
if (preStep.Equals(runStepInfo.S3_Empty))
{
IOManager.IOMove(IO_Type.L3_Traverse_Run, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.L3_Traverse_Up_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.CIOMove(IO_Type.L3_Traverse_Down_SOL, IO_VALUE.HIGH);
......@@ -33,6 +35,8 @@ namespace OnlineStore.DeviceLibrary.bean
}
else if(preStep.Equals(runStepInfo.S3_Out))
{
IOManager.IOMove(IO_Type.L2_Traverse_Run, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.L2_Traverse_Up_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.CIOMove(IO_Type.L2_Traverse_Down_SOL, IO_VALUE.HIGH);
......@@ -44,18 +48,18 @@ namespace OnlineStore.DeviceLibrary.bean
{
if (preStep.Equals(runStepInfo.S3_Empty))
{
if(IOManager.IOValue(IO_Type.L3_Traverse_Down_SOL).Equals(IO_VALUE.HIGH))
if(IOManager.IOValue(IO_Type.L3_UpDown_Down_Sig).Equals(IO_VALUE.HIGH))
{
msg = "料串转移完成:入料线体->空料串线体";
Msg = "料串转移完成:入料线体->空料串线体";
EndStep();
return true;
}
}
else if (preStep.Equals(runStepInfo.S3_Out))
{
if (IOManager.IOValue(IO_Type.L2_Traverse_Down_SOL).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.L2_UpDown_Down_Sig).Equals(IO_VALUE.HIGH))
{
msg = "料串转移完成:入料线体->出料线体";
Msg = "料串转移完成:入料线体->出料线体";
EndStep();
return true;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!