Commit a04c6c6c 张东亮

上料工位要料架,循环检测左右两边

1 个父辈 8c7dab8e
...@@ -38,7 +38,7 @@ namespace OnlineStore.Common ...@@ -38,7 +38,7 @@ namespace OnlineStore.Common
public static string ABBServerPort = "ABBServerPort"; public static string ABBServerPort = "ABBServerPort";
public static string BenQ_AGV = "BenQ_AGV"; public static string Line_AGV = "Line_AGV";
public static string DefaultSpeed = "DefaultSpeed"; public static string DefaultSpeed = "DefaultSpeed";
} }
......
...@@ -12,7 +12,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -12,7 +12,7 @@ namespace OnlineStore.DeviceLibrary
{ {
public class AgvClient_Dbline public class AgvClient_Dbline
{ {
private static string ServerIp = ConfigAppSettings.GetValue(Setting_Init.BenQ_AGV); private static string ServerIp = ConfigAppSettings.GetValue(Setting_Init.Line_AGV);
public AsaPL.AgvClient agvClient; public AsaPL.AgvClient agvClient;
private static bool isInit = false; private static bool isInit = false;
public static Dictionary<string, AsaPL.ClientAction> actionMap = new Dictionary<string, AsaPL.ClientAction>(); public static Dictionary<string, AsaPL.ClientAction> actionMap = new Dictionary<string, AsaPL.ClientAction>();
......
...@@ -70,9 +70,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -70,9 +70,9 @@ namespace OnlineStore.DeviceLibrary
WarnMsg = ""; WarnMsg = "";
if (IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.HIGH))
{ {
S1_RightShelfId = ""; //S1_RightShelfId = "";
S1_CurrShelfId = ""; //S1_CurrShelfId = "";
S1_LeftShelfId = ""; //S1_LeftShelfId = "";
RealRfidMap = new Dictionary<string, string>(); RealRfidMap = new Dictionary<string, string>();
mainTimer.Enabled = false; mainTimer.Enabled = false;
// AgvClient.SetCancelState(false); // AgvClient.SetCancelState(false);
...@@ -349,6 +349,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -349,6 +349,7 @@ namespace OnlineStore.DeviceLibrary
} }
private bool InProcess = false; private bool InProcess = false;
static object s1ShelfLock = new object();
private Stopwatch stopwatch = new Stopwatch(); private Stopwatch stopwatch = new Stopwatch();
public bool MoveStop = false; public bool MoveStop = false;
protected void timersTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) protected void timersTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
...@@ -406,7 +407,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -406,7 +407,22 @@ namespace OnlineStore.DeviceLibrary
if (SOneMoveInfo.MoveType.Equals(LineMoveType.None)) if (SOneMoveInfo.MoveType.Equals(LineMoveType.None))
{ {
S1_ShelfCheck(); if (Monitor.TryEnter(s1ShelfLock))
{
try
{
S1_ShelfProcess();
}
catch (Exception ex)
{
LogUtil.error(Name + " S1_ShelfProcess出错", ex);
}
finally
{
Monitor.Exit(s1ShelfLock);
}
}
if (S1_RightShelfId != "") if (S1_RightShelfId != "")
{ {
S2CanGetShelf = false; S2CanGetShelf = false;
......
...@@ -233,6 +233,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -233,6 +233,11 @@ namespace OnlineStore.DeviceLibrary
{ {
if (needNewShelf.EndsWith(Static_String.BigShelf_RFID_Prefix) || needNewShelf.StartsWith(Static_String.BigShelf_RFID_Prefix)) if (needNewShelf.EndsWith(Static_String.BigShelf_RFID_Prefix) || needNewShelf.StartsWith(Static_String.BigShelf_RFID_Prefix))
{ {
if(IOManager.IOValue(IO_Type.LLow_StopCheck2).Equals(IO_VALUE.LOW))
{
SOneMoveInfo.NextMoveStep(MoveStep.S1_NewShelf);
return;
}
LogUtil.info("双层线_S1" + AllTaskInfo.ToStr() + "S1需要新料架【" + needNewShelf + "】,等待 LLow_StopCheck3"); LogUtil.info("双层线_S1" + AllTaskInfo.ToStr() + "S1需要新料架【" + needNewShelf + "】,等待 LLow_StopCheck3");
//放一个C料架 //放一个C料架
SOneMoveInfo.NewMove(LineMoveType.S1Shelf, MoveStep.S1_C01_GetC); SOneMoveInfo.NewMove(LineMoveType.S1Shelf, MoveStep.S1_C01_GetC);
...@@ -242,7 +247,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -242,7 +247,12 @@ namespace OnlineStore.DeviceLibrary
} }
else if (needNewShelf.EndsWith(Static_String.SmallShelf_RFID_Prefix) || needNewShelf.StartsWith(Static_String.SmallShelf_RFID_Prefix)) else if (needNewShelf.EndsWith(Static_String.SmallShelf_RFID_Prefix) || needNewShelf.StartsWith(Static_String.SmallShelf_RFID_Prefix))
{ {
LogUtil.info("双层线_S1" + AllTaskInfo.ToStr() + "S1需要新料架【" + needNewShelf + "】,等待 LHigh_StopCheck3"); if (IOManager.IOValue(IO_Type.LHigh_StopCheck2).Equals(IO_VALUE.LOW))
{
SOneMoveInfo.NextMoveStep(MoveStep.S1_NewShelf);
return;
}
LogUtil.info("双层线_S1" + AllTaskInfo.ToStr() + "S1需要新料架【" + needNewShelf + "】,等待 LHigh_StopCheck2");
//放一个D料架 //放一个D料架
SOneMoveInfo.NewMove(LineMoveType.S1Shelf, MoveStep.S1_D10_GetD); SOneMoveInfo.NewMove(LineMoveType.S1Shelf, MoveStep.S1_D10_GetD);
SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_StopCheck2, IO_VALUE.HIGH)); SOneMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_StopCheck2, IO_VALUE.HIGH));
......
...@@ -73,7 +73,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -73,7 +73,7 @@ namespace OnlineStore.DeviceLibrary
//右侧上层需要放个料架 //右侧上层需要放个料架
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
LHighProcess = true; RHighProcess = true;
LogUtil.info("右侧双层线_" + "右上层放料架到阻挡2"); LogUtil.info("右侧双层线_" + "右上层放料架到阻挡2");
IOMove(IO_Type.RHigh_LineRun, IO_VALUE.HIGH, 30000); IOMove(IO_Type.RHigh_LineRun, IO_VALUE.HIGH, 30000);
IOMove(IO_Type.RHigh_StopCylinder1, IO_VALUE.HIGH, 3000); IOMove(IO_Type.RHigh_StopCylinder1, IO_VALUE.HIGH, 3000);
......
...@@ -63,8 +63,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -63,8 +63,8 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
s1RLeaveStep.Msg = "工位1放行料架完成,停止工位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_S2); outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S2);
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<add key="App_AutoRun" value="1" /> <add key="App_AutoRun" value="1" />
<add key="App_Title" value="双层料架流水线" /> <add key="App_Title" value="双层料架流水线" />
<!--Server address--> <!--Server address-->
<add key="httpAddr" value="http://10.85.160.25/myproject/rest/api/qisda/device/"/> <add key="httpAddr" value="http://10.85.162.124/myproject/rest/api/qisda/device/"/>
<!--start one store config--> <!--start one store config-->
<add key="Line_Config" value="\LineConfig\DoubleLineConfig.csv" /> <add key="Line_Config" value="\LineConfig\DoubleLineConfig.csv" />
...@@ -17,15 +17,15 @@ ...@@ -17,15 +17,15 @@
<add key="UseAIOBOX" value="1" /> <add key="UseAIOBOX" value="1" />
<add key="DIMS" value="150" /> <add key="DIMS" value="150" />
<add key="DOMS" value="300" /> <add key="DOMS" value="300" />
<!--AGV调度服务器地址--> <!--AGV料仓调度服务器地址-->
<add key="AgvServerIp" value="127.0.0.1" /> <add key="AgvServerIp" value="127.0.0.1" />
<!--AGV产线调度服务器地址-->
<add key="Line_AGV" value="10.85.197.3" />
<!--是否调试状态--> <!--是否调试状态-->
<add key="IsInDebug" value="1" /> <add key="IsInDebug" value="1" />
<add key ="Agv_Log_Open" value ="1"/> <add key ="Agv_Log_Open" value ="1"/>
<!--ABB机器人服务器--> <!--ABB机器人服务器-->
<add key ="ABBServerPort" value ="10021"/> <add key ="ABBServerPort" value ="10021"/>
<!--明基agv地址-->
<add key="BenQ_AGV" value="10.85.161.122"/>
<add key ="DefaultSpeed" value ="1000"/> <add key ="DefaultSpeed" value ="1000"/>
</appSettings> </appSettings>
<log4net> <log4net>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<appender-ref ref="RollingLogFileAppender" /> <appender-ref ref="RollingLogFileAppender" />
</logger> </logger>
<logger name="TheRFID"> <logger name="TheRFID">
<level value="Info" /> <level value="Error" />
<appender-ref ref="TheRFID" /> <appender-ref ref="TheRFID" />
</logger> </logger>
<!--<root> <!--<root>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!