Commit 75a7ebc3 张东亮

VMI横移

1 个父辈 8bde1d13
......@@ -5,39 +5,39 @@ PRO,IO模块IP,PRO_AOI_IP_1,192.168.103.25,,,,,,,
,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X721,DI-01,0,
DI,复位,Reset_BTN,1,PRO_AOI_IP_1,0,复位,X722,DI-02,0,
DI,进料线入口阻挡检测,InL_InStopCheck,2,PRO_AOI_IP_1,0,进料线入口阻挡检测,X723,DI-03,0,
DI,进料线中间位检测,InL_MIddleCheck,3,PRO_AOI_IP_1,0,进料线出口阻挡检测,X724,DI-04,0,
,,,4,PRO_AOI_IP_1,0,,X725,DI-05,0,
DI,进料线出口阻挡检测,InL_OutStopCheck,5,PRO_AOI_IP_1,0,进料线出口检测,X726,DI-06,0,
DI,出料线入口检测,OutL_InCheck,6,PRO_AOI_IP_1,0,出料线入口检测,X727,DI-07,0,
DI,出料线入口阻挡检测,OutL_InStopCheck,7,PRO_AOI_IP_1,0,出料线入口阻挡检测,X728,DI-08,0,
,,,8,PRO_AOI_IP_1,0,,X729,DO-01,0,
DI,出料线出口阻挡检测,OutL_OutStopCheck,9,PRO_AOI_IP_1,0,出料线出口阻挡检测,X730,DO-02,0,
,出料线人工取料信号,,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0,
,,,11,PRO_AOI_IP_1,0,,X732,DO-04,0,
,,,12,PRO_AOI_IP_1,0,,X733,DO-05,0,
,,,13,PRO_AOI_IP_1,0,,X734,DO-06,0,
,,,14,PRO_AOI_IP_1,0,,X735,DO-07,0,
,,,15,PRO_AOI_IP_1,0,,X736,DO-08,0,
DI,出料线入口检测,L2_InCheck,2,PRO_AOI_IP_1,0,出料线入口检测,X723,DI-03,0,
DI,出料线检测1,L2_StopCheck1,3,PRO_AOI_IP_1,0,出料线检测1,X724,DI-04,0,
DI,料串切换气缸前进端,Switch_Forward_Sig,4,PRO_AOI_IP_1,0,料串切换气缸前进端,X725,DI-05,0,
DI,出料线出口检测,L2_OutCheck,5,PRO_AOI_IP_1,0,出料线出口检测,X726,DI-06,0,
DI,入料线入口检测,L1_InCheck,6,PRO_AOI_IP_1,0,入料线入口检测,X727,DI-07,0,
DI,入料线阻挡检测,L1_StopCheck,7,PRO_AOI_IP_1,0,入料线阻挡检测,X728,DI-08,0,
DI,料串切换气缸后退端,Switch_Back_Sig,8,PRO_AOI_IP_1,0,料串切换气缸后退端,X729,DO-01,0,
DI,入料线出口检测,L1_OutCheck,9,PRO_AOI_IP_1,0,入料线出口检测,X730,DO-02,0,
DI,出料线人工取料信号,L1_ManualRecSig,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0,
DI,进料线体横移上升端,L1_UpDown_Up_Sig,11,PRO_AOI_IP_1,0,进料线体横移上升端,X732,DO-04,0,
DI,进料线体横移下降端,L1_UpDown_Down_Sig,12,PRO_AOI_IP_1,0,进料线体横移下降端,X733,DO-05,0,
DI,出料线体横移上升端,L2_UpDown_Up_Sig,13,PRO_AOI_IP_1,0,出料线体横移上升端,X734,DO-06,0,
DI,出料线体横移下降端,L2_UpDown_Down_Sig,14,PRO_AOI_IP_1,0,出料线体横移下降端,X735,DO-07,0,
DI,包装料架检测信号,PackingShelf_Sig,15,PRO_AOI_IP_1,0,包装料架检测信号,X736,DO-08,0,
DO,运行状态(指示灯),AutoRun_HddLed,0,PRO_AOI_IP_1,0,运行状态(指示灯),Y721,DI-01,0,
DO,故障状态(指示灯),Alarm_HddLed,1,PRO_AOI_IP_1,0,故障状态(指示灯),Y722,DI-02,0,
DO,进料线驱动电机运转,InL_Run,2,PRO_AOI_IP_1,0,进料线驱动电机运转,Y723,DI-03,0,
DO,出料线驱动电机运转,OutL_Run,3,PRO_AOI_IP_1,0,出料线驱动电机运转,Y724,DI-04,0,
DO,出料线入口阻挡,OutL_InStopDown,4,PRO_AOI_IP_1,0,出料线入口阻挡,Y725,DI-05,0,
,,,5,PRO_AOI_IP_1,0,,Y726,DI-06,0,
DO,出料线出口阻挡,OutL_OutStopDown,6,PRO_AOI_IP_1,0,出料线出口阻挡,Y727,DI-07,0,
DO,进料线出口阻挡,InL_OutStopDown,7,PRO_AOI_IP_1,0,进料线出口阻挡,Y728,DI-08,0,
,,,8,PRO_AOI_IP_1,0,,Y729,DO-01,0,
DO,进料线入口阻挡,InL_InStopDown,9,PRO_AOI_IP_1,0,进料线入口阻挡,Y730,DO-02,0,
,,,10,PRO_AOI_IP_1,0,,Y731,DO-03,0,
,,,11,PRO_AOI_IP_1,0,,Y732,DO-04,0,
,,,12,PRO_AOI_IP_1,0,,Y733,DO-05,0,
,,,13,PRO_AOI_IP_1,0,,Y734,DO-06,0,
,,,14,PRO_AOI_IP_1,0,,Y735,DO-07,0,
,,,15,PRO_AOI_IP_1,0,,Y736,DO-08,0,
DO,进料线驱动电机运转,L1_Run,2,PRO_AOI_IP_1,0,进料线驱动电机运转,Y723,DI-03,0,
DO,出料线驱动电机运转,L2_Run,3,PRO_AOI_IP_1,0,出料线驱动电机运转,Y724,DI-04,0,
DO,进料线阻挡下降,L1_StopDown,4,PRO_AOI_IP_1,0,进料线阻挡下降,Y725,DI-05,0,
,进料线阻挡2下降,L1_StopDown2,5,PRO_AOI_IP_1,0,进料线阻挡2下降,Y726,DI-06,0,
DO,进料线出口阻挡下降,L1_OutStopDown,6,PRO_AOI_IP_1,0,进料线出口阻挡下降,Y727,DI-07,0,
DO,出料线出口阻挡下降,L2_OutStopDown,7,PRO_AOI_IP_1,0,出料线阻挡1下降,Y728,DI-08,0,
,出料线阻挡2下降,L2_StopDown2,8,PRO_AOI_IP_1,0,出料线阻挡2下降,Y729,DO-01,0,
DO,出料线阻挡下降,L2_StopDown,9,PRO_AOI_IP_1,0,出料线阻挡下降,Y730,DO-02,0,
DO,横移机构上升SOL,Traverse_Up_SOL,10,PRO_AOI_IP_1,0,横移机构上升SOL,Y731,DO-03,0,
DO,横移机构下降SOL,Traverse_Down_SOL,11,PRO_AOI_IP_1,0,横移机构下降SOL,Y732,DO-04,0,
DO,横移电机1运转,Traverse1_Run,12,PRO_AOI_IP_1,0,横移电机1运转,Y733,DO-05,0,
DO,横移电机2运转,Traverse2_Run,13,PRO_AOI_IP_1,0,横移电机2运转,Y734,DO-06,0,
DO,料串切换气缸前进,Switch_Forward,14,PRO_AOI_IP_1,0,料串切换气缸前进,Y735,DO-07,0,
DO,料串切换气缸后退,Switch_Back,15,PRO_AOI_IP_1,0,料串切换气缸后退,Y736,DO-08,0,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,出空料架流水线AGV节点名称,OutL_AgvName,A2,,,,,,,
PRO,入料架流水线AGV节点名称,InL_AgvName,A1,,,,,,,
PRO,入料架流水线入口RFIDIP,InL_In_RFIDIP,192.168.103.108,,,,,, ,
PRO,入料架流水线出口RFIDIP,InL_Out_RFIDIP,192.168.103.107,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,60,,,,,,,
PRO,L1线AGV节点名称,L1_AgvName,A2,,,,,,,
PRO,L2线AGV节点名称,L2_AgvName,A1,,,,,,,
PRO,L2线入口RFIDIP,L2_In_RFIDIP,192.168.103.108,,,,,, ,
PRO,L2线出口RFIDIP,L2_Out_RFIDIP,192.168.103.107,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,40,,,,,,,
......@@ -46,8 +46,8 @@ namespace OnlineStore.DeviceLibrary
IOManager.Init();
IOManager.instance.ConnectionIOList(Config.DIODeviceNameList);
AgvClient.NodeList.Add(config.InL_AgvName);
AgvClient.NodeList.Add(config.OutL_AgvName);
AgvClient.NodeList.Add(config.L1_AgvName);
AgvClient.NodeList.Add(config.L2_AgvName);
mainTimer.Enabled = false;
int isAuto = ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun);
if (isAuto == 1)
......@@ -77,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
//}
AgvClient.SetCancelState(false);
RFIDManager.Open(new string[] { Config.InL_In_RFIDIP, Config.InL_Out_RFIDIP });
RFIDManager.Open(new string[] { Config.L2_In_RFIDIP, Config.L2_Out_RFIDIP });
runStatus = RunStatus.HomeMoving;
MoveInfo.NewMove(LineMoveType.ReturnHome);
ReturnHome();
......@@ -103,13 +103,12 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(MoveStep.VMI_H_StopUp);
LogUtil.info(Name + " 开始复位:所有阻挡上升,设置状态为None");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
IOManager.IOMove(IO_Type.InL_InStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.InL_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_InStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_OutStopDown, IO_VALUE.LOW);
AgvClient.SetStatus(Config.InL_AgvName);
AgvClient.SetStatus(Config.OutL_AgvName);
IOManager.IOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_StopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_StopDown, IO_VALUE.LOW);
AgvClient.SetStatus(Config.L1_AgvName);
AgvClient.SetStatus(Config.L2_AgvName);
mainTimer.Enabled = true;
serverConnectTimer.Enabled = true;
}
......@@ -148,8 +147,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(MoveStep.VMI_H_LineRun);
LogUtil.info(Name + " 复位:阻挡上升完成,转动流水线,停止休眠");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.HIGH);
UpdateSleep(false);
break;
case MoveStep.VMI_H_LineRun:
......@@ -201,12 +200,12 @@ namespace OnlineStore.DeviceLibrary
public void StopMove()
{
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.InL_InStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.InL_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_InStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_StopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_StopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_OutStopDown, IO_VALUE.LOW);
}
private bool InProcess = false;
......@@ -246,6 +245,8 @@ namespace OnlineStore.DeviceLibrary
OutLineTimerProcess();
TranverseTimerProcess();
IOTimeOutProcess();
SleepTimerProcess();
......@@ -276,30 +277,31 @@ namespace OnlineStore.DeviceLibrary
TimeSpan span = DateTime.Now - ol_lastSendShelfTime;
//如果出口无料架,持续1000以上,放开阻挡放出一个料架
//每次放料架时间间隔3秒
if (IOManager.IOValue(IO_Type.OutL_InStopCheck).Equals(IO_VALUE.HIGH)&&IOManager.IOValue(IO_Type.OutL_OutStopCheck).Equals(IO_VALUE.LOW) && span.TotalSeconds > 3)
if (IOManager.IOValue(IO_Type.L1_StopCheck).Equals(IO_VALUE.HIGH)&&IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.LOW) && span.TotalSeconds > 3)
{
//如果料线体出口无料架,放一个料架到出口
//如果料线体出口无料架,放一个料架到出口
if (LineManager.checkWatch(ol_noshelfWatch, 1000))
{
IOManager.CIOMove(IO_Type.OutL_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 出料线体出口无料架,下降 [" + IO_Type.OutL_InStopDown + "] [" + StopDownMS + "] 秒");
//IOManager.CIOMove(IO_Type.L1_OutStopDown, IO_VALUE.LOW);
LogUtil.info(" 入料线体出口无料架,下降 [" + IO_Type.L1_StopDown + "] [" + StopDownMS + "] 秒");
ol_lastSendShelfTime = DateTime.Now;
StopIOMove(IO_Type.OutL_InStopDown, StopDownMS);
StopIOMove(IO_Type.L1_OutStopDown, StopDownMS);
StopIOMove(IO_Type.L1_StopDown, StopDownMS);
}
}
else if (span.TotalMilliseconds > StopDownMS)
{
ol_noshelfWatch.Stop();
IOManager.CIOMove(IO_Type.OutL_InStopDown, IO_VALUE.LOW);
IOManager.CIOMove(IO_Type.L1_StopDown, IO_VALUE.LOW);
}
//如果入口无料架即可进入
if (IOManager.IOValue(IO_Type.OutL_InCheck).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW))
{
AgvClient.NeedEnter(Config.OutL_AgvName, "");
AgvClient.NeedEnter(Config.L1_AgvName, "");
}else
{
AgvClient.SetToNone(Config.OutL_AgvName, "");
AgvClient.SetToNone(Config.L1_AgvName, "");
}
}
private DateTime il_lastCallAgvTime = DateTime.Now.AddMinutes(-5);
......@@ -313,7 +315,7 @@ namespace OnlineStore.DeviceLibrary
//出口有料架,需要通知agv取走料架
//每次叫小车时间间隔3分钟?
//出口信号需要持续1秒钟
if (IOManager.IOValue(IO_Type.InL_OutStopCheck).Equals(IO_VALUE.HIGH) && span.TotalSeconds > 60)
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.HIGH) && span.TotalSeconds > 60)
{
if (LastOutShelfId.Equals("000").Equals(false))
{
......@@ -322,32 +324,128 @@ namespace OnlineStore.DeviceLibrary
il_lastCallAgvTime = DateTime.Now;
//StopIOMove(IO_Type.InL_OutStopDown, StopDownMS);
LogUtil.info(" 入库线体出口有料架" + LastOutShelfId + ",呼叫agv小车[" + Config.InL_AgvName + "] [NeedLeave] ");
AgvClient.NeedLeave(Config.InL_AgvName, LastOutShelfId);
LogUtil.info(" 出料线体出口有料架" + LastOutShelfId + ",呼叫agv小车[" + Config.L2_AgvName + "] [NeedLeave] ");
AgvClient.NeedLeave(Config.L2_AgvName, LastOutShelfId);
}
}
}
else if (span.TotalMilliseconds > StopDownMS)
{
il_outstopCheckWarch.Stop();
ClientAction currA = AgvClient.GetAction(Config.InL_AgvName);
ClientAction currA = AgvClient.GetAction(Config.L2_AgvName);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter))
{
if (IOManager.IOValue(IO_Type.InL_OutStopDown).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.L2_OutStopDown).Equals(IO_VALUE.HIGH))
{
IOManager.IOMove(IO_Type.InL_OutStopDown, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_OutStopDown, IO_VALUE.LOW);
}
}
}
//如果是出口无料架,NeedLeave状态,改为None
if (IOManager.IOValue(IO_Type.InL_OutStopCheck).Equals(IO_VALUE.LOW) && AgvClient.GetAction(Config.InL_AgvName).Equals(ClientAction.NeedLeave))
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.LOW) && AgvClient.GetAction(Config.L2_AgvName).Equals(ClientAction.NeedLeave))
{
il_outstopCheckWarch.Stop();
LogUtil.info(" 入库线体出口无料架 ,更改[" + Config.InL_AgvName + "] 状态[None] ");
AgvClient.SetToNone(Config.InL_AgvName, "" );
LogUtil.info(" 出料线体出口无料架 ,更改[" + Config.L2_AgvName + "] 状态[None] ");
AgvClient.SetToNone(Config.L2_AgvName, "" );
}
}
private Task TranverseTask;
private Stopwatch ol_tranverseShelfWatch = new Stopwatch();
private void TranverseTimerProcess()
{
//人工取料
if (IOManager.IOValue(IO_Type.L1_ManualRecSig).Equals(IO_VALUE.HIGH))
{
if (IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW))
{
if (LineManager.checkWatch(ol_tranverseShelfWatch, 2000))
{
if (TranverseTask == null)
{
TranverseTask = Task.Factory.StartNew(new Action(TranverseProcess));
il_lastCallAgvTime = DateTime.Now;
}
else if (TranverseTask.IsCompleted)
{
TranverseTask = Task.Factory.StartNew(new Action(TranverseProcess));
il_lastCallAgvTime = DateTime.Now;
}
}
}
}
else
{
ol_tranverseShelfWatch.Stop();
}
}
private static void TranverseProcess()
{
LogUtil.info(" TranverseProcess");
if (IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.PackingShelf_Sig).Equals(IO_VALUE.HIGH))
{
IOManager.CIOMove(IO_Type.Switch_Forward, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.CIOMove(IO_Type.Switch_Back, IO_VALUE.HIGH);
LogUtil.info(" 横移包装料架");
while (IOManager.IOValue(IO_Type.Switch_Back_Sig).Equals(IO_VALUE.LOW))
{
}
LogUtil.info(" 料串气缸到达后退端");
}
else if (IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.PackingShelf_Sig).Equals(IO_VALUE.LOW))
{
IOManager.CIOMove(IO_Type.Switch_Back, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.CIOMove(IO_Type.Switch_Forward, IO_VALUE.HIGH);
LogUtil.info(" 横移料串");
while (IOManager.IOValue(IO_Type.Switch_Forward_Sig).Equals(IO_VALUE.LOW))
{
}
LogUtil.info(" 料串气缸到达前进端");
}
if (IOManager.IOValue(IO_Type.L1_OutCheck).Equals(IO_VALUE.HIGH) && IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW))
{
IOManager.CIOMove(IO_Type.Traverse_Down_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Traverse_Up_SOL, IO_VALUE.HIGH);
Thread.Sleep(500);
LogUtil.info(" 横移机构上升");
while (IOManager.IOValue(IO_Type.L2_UpDown_Up_Sig).Equals(IO_VALUE.LOW))
{
}
IOManager.IOMove(IO_Type.Traverse2_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Traverse1_Run, IO_VALUE.HIGH);
LogUtil.info(" 横移机构电机运行");
}
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (IOManager.IOValue(IO_Type.L2_InCheck).Equals(IO_VALUE.LOW))
{
if (stopwatch.Elapsed.TotalMinutes >= 2)
{
//stopwatch.Stop();
//IOManager.CIOMove(IO_Type.Traverse_Run, IO_VALUE.LOW);
//IOManager.CIOMove(IO_Type.Roller_Run, IO_VALUE.LOW);
LogUtil.info(" 横移机构转移料架超时 [" + IO_Type.L1_StopDown + "] 大于2分钟");
//break;
}
}
stopwatch.Stop();
Thread.Sleep(5000);
IOManager.IOMove(IO_Type.Traverse1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Traverse2_Run, IO_VALUE.LOW);
LogUtil.info(" 横移电机停止");
Thread.Sleep(1000);
IOManager.CIOMove(IO_Type.Traverse_Down_SOL, IO_VALUE.HIGH);
IOManager.CIOMove(IO_Type.Traverse_Up_SOL, IO_VALUE.LOW);
LogUtil.info(" 横移机构下降");
LogUtil.info(" TranverseProcess Finish");
}
private void LedProcess()
{
try
......@@ -490,16 +588,16 @@ namespace OnlineStore.DeviceLibrary
LedProcess();
LastInShelfId = RFIDManager.ReadRFID(Config.InL_In_RFIDIP,true).NumStr();
LastOutShelfId = RFIDManager.ReadRFID(Config.InL_Out_RFIDIP,true).NumStr();
LastInShelfId = RFIDManager.ReadRFID(Config.L2_In_RFIDIP,true).NumStr();
LastOutShelfId = RFIDManager.ReadRFID(Config.L2_Out_RFIDIP,true).NumStr();
bool result = SendVmiRfid(LastInShelfId);
if (result)
{
IOManager.CIOMove(IO_Type.InL_InStopDown, IO_VALUE.HIGH);
IOManager.CIOMove(IO_Type.L2_StopDown, IO_VALUE.HIGH);
}
else
{
IOManager.CIOMove(IO_Type.InL_InStopDown, IO_VALUE.LOW);
IOManager.CIOMove(IO_Type.L2_StopDown, IO_VALUE.LOW);
}
}
catch (Exception ex)
......
......@@ -126,9 +126,8 @@ namespace OnlineStore.DeviceLibrary
public string GetRunInfo()
{
return "进料线出口" + Config.InL_AgvName + ":" + AgvClient.GetAction(Config.InL_AgvName) + ",料架: " + LastInShelfId + "\r\n" +
"出料线进口" + Config.OutL_AgvName + ":" + AgvClient.GetAction(Config.OutL_AgvName) + ",料架: " + LastOutShelfId + "\r\n";
// "进料出口" + Config.InL_AgvName + ":" + AgvClient.GetAction(Config.InL_AgvName) + " 出料进口" + Config.OutL_AgvName + ":" + AgvClient.GetAction(Config.OutL_AgvName) + "\r\n"+
return "进料线入口" + Config.L1_AgvName + ":" + AgvClient.GetAction(Config.L1_AgvName) + ",料架: " + LastInShelfId + "\r\n" +
"出料线出口" + Config.L2_AgvName + ":" + AgvClient.GetAction(Config.L2_AgvName) + ",料架: " + LastOutShelfId + "\r\n";
}
#endregion
......@@ -153,20 +152,21 @@ namespace OnlineStore.DeviceLibrary
if (needCheckList.Count <= 0)
{
needCheckList.Add(IO_Type.InL_InStopCheck);
needCheckList.Add(IO_Type.InL_MIddleCheck);
needCheckList.Add(IO_Type.InL_OutStopCheck);
needCheckList.Add(IO_Type.OutL_InCheck);
needCheckList.Add(IO_Type.OutL_InStopCheck);
needCheckList.Add(IO_Type.OutL_InStopDown);
needCheckList.Add(IO_Type.L1_InCheck);
needCheckList.Add(IO_Type.L1_StopCheck);
needCheckList.Add(IO_Type.L1_OutCheck);
needCheckList.Add(IO_Type.L2_InCheck);
needCheckList.Add(IO_Type.L2_StopCheck1);
needCheckList.Add(IO_Type.L2_OutCheck);
needCheckList.Add(IO_Type.InL_InStopDown);
needCheckList.Add(IO_Type.L2_StopDown);
needCheckList.Add(IO_Type.L1_StopDown);
}
bool agvBusy = false;
ClientAction currA = AgvClient.GetAction(Config.InL_AgvName);
ClientAction currA = AgvClient.GetAction(Config.L1_AgvName);
if (currA.Equals(ClientAction.None) || currA.Equals(ClientAction.NeedLeave) || currA.Equals(ClientAction.NeedEnter) )
{
ClientAction currB = AgvClient.GetAction(Config.OutL_AgvName);
ClientAction currB = AgvClient.GetAction(Config.L2_AgvName);
if (currB.Equals(ClientAction.None) || currB.Equals(ClientAction.NeedLeave) || currB.Equals(ClientAction.NeedEnter))
{
agvBusy = false;
......@@ -229,15 +229,15 @@ namespace OnlineStore.DeviceLibrary
if (needSleep)
{
IsSleep = true;
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.LOW);
}
else
{
IsSleep = false;
LastBusyTime = DateTime.Now;
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.HIGH);
};
}
#endregion
......
......@@ -86,21 +86,21 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(logName);
UpdateAction(id, Asa.ClientAction.Ready);
if (id.Equals(LineManager.Config.OutL_AgvName))
if (id.Equals(LineManager.Config.L1_AgvName))
{
LineManager.VMILine.UpdateSleep(false);
if (IOManager.IOValue(IO_Type.OutL_InCheck).Equals(IO_VALUE.LOW))
if (IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.LOW))
{
Task.Factory.StartNew(delegate
{
SetStatus(id, "", ClientAction.MayEnter);
LogUtil.info(logName + " ,等待OutL_InCheck");
LogUtil.info(logName + " ,等待L1_InCheck");
try
{
WaitUtil.Wait(60000, delegate
{
return IOManager.IOValue(IO_Type.OutL_InCheck).Equals(IO_VALUE.HIGH);
}, "等待OutL_InCheck=HIGH");
return IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.HIGH);
}, "等待L1_InCheck=HIGH");
}
catch (Exception ex)
{
......@@ -120,21 +120,22 @@ namespace OnlineStore.DeviceLibrary
}
else
{
LogUtil.error(logName + " OutL_InCheck 检测到有料架,AGV的料架无法进入");
LogUtil.error(logName + " L1_InCheck 检测到有料架,AGV的料架无法进入");
SetStatus(id, "", ClientAction.None, ClientLevel.High);
}
}
else if (id.Equals(LineManager.Config.InL_AgvName))
else if (id.Equals(LineManager.Config.L2_AgvName))
{
string shefId = LineManager.VMILine.LastOutShelfId;
if (IOManager.IOValue(IO_Type.InL_OutStopCheck).Equals(IO_VALUE.HIGH))
if (IOManager.IOValue(IO_Type.L2_OutCheck).Equals(IO_VALUE.HIGH))
{
SetStatus(id, shefId, ClientAction.MayLeave);
LineManager.VMILine.UpdateSleep(false);
LineManager.VMILine.StopIOMove(IO_Type.InL_OutStopDown, 1500);
LineManager.VMILine.StopIOMove(IO_Type.L2_OutStopDown, 1500);
//agvClient.MayLeave(id);
SetStatus(id, shefId, ClientAction.MayLeave);
LogUtil.info(logName + "下降 InL_OutStopDown , " + shefId);
LogUtil.info(logName + "下降 L2_OutStopDown , " + shefId);
Task.Factory.StartNew(delegate
{
......@@ -151,7 +152,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
LogUtil.error(logName + " InL_OutStopCheck 未检测到料架,无法将料架进入AGV");
LogUtil.error(logName + " L2_OutCheck 未检测到料架,无法将料架进入AGV");
SetStatus(id, "", ClientAction.None, ClientLevel.High);
}
}
......
......@@ -25,77 +25,144 @@ namespace OnlineStore.LoadCSVLibrary
}
/// <summary>
/// VMI流水线,DI 急停 SuddenStop_BTN X01 DI-01
/// DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X721,DI-01,0,
/// </summary>
public static string SuddenStop_BTN = "SuddenStop_BTN";
/// <summary>
/// VMI流水线 DI 复位 Reset_BTN X02 DI-02
/// DI,复位,Reset_BTN,1,PRO_AOI_IP_1,0,复位,X722,DI-02,0,
/// </summary>
public static string Reset_BTN = "Reset_BTN";
/// <summary>
/// DI,出料线入口检测,L2_InCheck,2,PRO_AOI_IP_1,0,出料线入口检测,X723,DI-03,0,
/// </summary>
public static string L2_InCheck = "L2_InCheck";
/// <summary>
/// DI,出料线检测1,L2_StopCheck1,3,PRO_AOI_IP_1,0,出料线检测1,X724,DI-04,0,
/// </summary>
public static string L2_StopCheck1 = "L2_StopCheck1";
/// <summary>
/// DI,料串切换气缸前进端,Switch_Forward_Sig,4,PRO_AOI_IP_1,0,料串切换气缸前进端,X725,DI-05,0,
/// </summary>
public static string Switch_Forward_Sig = "Switch_Forward_Sig";
/// <summary>
///DI,出料线出口检测,L2_OutCheck,5,PRO_AOI_IP_1,0,出料线出口检测,X726,DI-06,0,
/// </summary>
public static string L2_OutCheck = "L2_OutCheck";
/// <summary>
/// DI,入料线入口检测,L1_InCheck,6,PRO_AOI_IP_1,0,入料线入口检测,X727,DI-07,0,
/// </summary>
public static string L1_InCheck = "L1_InCheck";
/// <summary>
///DI,入料线阻挡检测,L1_StopCheck,7,PRO_AOI_IP_1,0,入料线阻挡检测,X728,DI-08,0,
/// </summary>
public static string L1_StopCheck = "L1_StopCheck";
/// <summary>
/// DI 进料线中间料架检测 InL_MIddleCheck
/// DI,料串切换气缸后退端,Switch_Back_Sig,8,PRO_AOI_IP_1,0,料串切换气缸后退端,X729,DO-01,0,
/// </summary>
public static string Switch_Back_Sig = "Switch_Back_Sig";
/// <summary>
///DI,入料线出口检测,L1_OutCheck,9,PRO_AOI_IP_1,0,入料线出口检测,X730,DO-02,0,
/// </summary>
public static string InL_MIddleCheck = "InL_MIddleCheck";
public static string L1_OutCheck = "L1_OutCheck";
/// <summary>
/// DI 进料线阻挡检测1 InL_InStopCheck
/// DI,出料线人工取料信号,L1_ManualRecSig,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0,
/// </summary>
public static string InL_InStopCheck = "InL_InStopCheck";
public static string L1_ManualRecSig = "L1_ManualRecSig";
/// <summary>
/// DI 进料线阻挡检测2 InL_OutStopCheck
/// DI,进料线体横移上升端,L1_UpDown_Up_Sig,11,PRO_AOI_IP_1,0,进料线体横移上升端,X732,DO-04,0,
/// </summary>
public static string InL_OutStopCheck = "InL_OutStopCheck";
public static string L1_UpDown_Up_Sig = "L1_UpDown_Up_Sig";
/// <summary>
/// DI 出料线入口检测 OutL_InCheck
/// DI,进料线体横移下降端,L1_UpDown_Down_Sig,12,PRO_AOI_IP_1,0,进料线体横移下降端,X733,DO-05,0,
/// </summary>
public static string OutL_InCheck = "OutL_InCheck";
public static string L1_UpDown_Down_Sig = "L1_UpDown_Down_Sig";
/// <summary>
///DI,出料线体横移上升端,L2_UpDown_Up_Sig,13,PRO_AOI_IP_1,0,出料线体横移上升端,X734,DO-06,0,
/// </summary>
public static string L2_UpDown_Up_Sig = "L2_UpDown_Up_Sig";
/// <summary>
/// DI 出料线阻挡检测1 OutL_InStopCheck
/// DI,出料线体横移下降端,L2_UpDown_Down_Sig,14,PRO_AOI_IP_1,0,出料线体横移下降端,X735,DO-07,0,
/// </summary>
public static string OutL_InStopCheck = "OutL_InStopCheck";
public static string L2_UpDown_Down_Sig = "L2_UpDown_Down_Sig";
/// <summary>
/// DI 出料线阻挡检测2 OutL_OutStopCheck
/// DI,包装料架检测信号,PackingShelf_Sig,15,PRO_AOI_IP_1,0,包装料架检测信号,X736,DO-08,0,
/// </summary>
public static string OutL_OutStopCheck = "OutL_OutStopCheck";
public static string PackingShelf_Sig = "PackingShelf_Sig";
/// <summary>
/// DO 自动指示灯 AutoRun_HddLed
/// DO,运行状态(指示灯),AutoRun_HddLed,0,PRO_AOI_IP_1,0,运行状态(指示灯),Y721,DI-01,0,
/// </summary>
public static string AutoRun_HddLed = "AutoRun_HddLed";
/// <summary>
///DO 故障指示灯 Alarm_HddLed
///DO,故障状态(指示灯),Alarm_HddLed,1,PRO_AOI_IP_1,0,故障状态(指示灯),Y722,DI-02,0,
/// </summary>
public static string Alarm_HddLed = "Alarm_HddLed";
/// <summary>
/// DO 进料线驱动电机运转 InL_Run
///DO,进料线驱动电机运转,L1_Run,2,PRO_AOI_IP_1,0,进料线驱动电机运转,Y723,DI-03,0,
/// </summary>
public static string InL_Run = "InL_Run";
public static string L1_Run = "L1_Run";
/// <summary>
/// DO 出料线驱动电机运转 OutL_Run
/// DO,出料线驱动电机运转,L2_Run,3,PRO_AOI_IP_1,0,出料线驱动电机运转,Y724,DI-04,0,
/// </summary>
public static string OutL_Run = "OutL_Run";
public static string L2_Run = "L2_Run";
/// <summary>
/// DO 进料线阻挡1下降 InL_InStopDown
/// DO,进料线阻挡1下降,L1_StopDown,4,PRO_AOI_IP_1,0,进料线阻挡1下降,Y725,DI-05,0,
/// </summary>
public static string InL_InStopDown = "InL_InStopDown";
public static string L1_StopDown = "L1_StopDown";
/// <summary>
/// DO 进料线阻挡2下降 InL_OutStopDown
/// DO,进料线阻挡2下降,L1_StopDown2,5,PRO_AOI_IP_1,0,进料线阻挡2下降,Y726,DI-06,0,
/// </summary>
public static string InL_OutStopDown = "InL_OutStopDown";
//public static string L1_StopDown2 = "L1_StopDown2";
/// <summary>
/// DO 出料线阻挡1下降 OutL_InStopDown
/// DO,进料线出口阻挡下降,L1_OutStopDown,6,PRO_AOI_IP_1,0,进料线出口阻挡下降,Y727,DI-07,0,
/// </summary>
public static string OutL_InStopDown = "OutL_InStopDown";
public static string L1_OutStopDown = "L1_OutStopDown";
/// <summary>
/// DO 出料线阻挡2下降 OutL_OutStopDown
/// DO,出料线出口阻挡下降,L2_OutStopDown,7,PRO_AOI_IP_1,0,出料线阻挡1下降,Y728,DI-08,0,
/// </summary>
public static string OutL_OutStopDown = "OutL_OutStopDown";
public static string L2_OutStopDown = "L2_OutStopDown";
/// <summary>
/// DO,出料线阻挡2下降,L2_OutStopDown2,8,PRO_AOI_IP_1,0,出料线阻挡2下降,Y729,DO-01,0,
/// </summary>
//public static string L2_StopDown2 = "L2_StopDown2";
/// <summary>
/// DO,出料线出口阻挡下降,L2_StopDown,9,PRO_AOI_IP_1,0,出料线出口阻挡下降,Y730,DO-02,0,
/// </summary>
public static string L2_StopDown = "L2_StopDown";
/// <summary>
/// DO,横移机构上升SOL,Traverse_Up_SOL,10,PRO_AOI_IP_1,0,横移机构上升SOL,Y731,DO-03,0,
/// </summary>
public static string Traverse_Up_SOL = "Traverse_Up_SOL";
/// <summary>
/// DO,横移机构下降SOL,Traverse_Down_SOL,11,PRO_AOI_IP_1,0,横移机构下降SOL,Y732,DO-04,0,
/// </summary>
public static string Traverse_Down_SOL = "Traverse_Down_SOL";
/// <summary>
/// DO,横移电机1运转,Traverse1_Run,12,PRO_AOI_IP_1,0,横移电机1运转,Y733,DO-05,0,
/// </summary>
public static string Traverse1_Run = "Traverse1_Run";
/// <summary>
/// DO,横移电机2运转,Traverse2_Run,13,PRO_AOI_IP_1,0,横移电机2运转,Y734,DO-06,0,
/// </summary>
public static string Traverse2_Run = "Traverse2_Run";
/// <summary>
/// DO,料串切换气缸前进,Switch_Forward,14,PRO_AOI_IP_1,0,料串切换气缸前进,Y735,DO-07,0,
/// </summary>
public static string Switch_Forward = "Switch_Forward";
/// <summary>
/// DO,料串切换气缸后退,Switch_Back,15,PRO_AOI_IP_1,0,料串切换气缸后退,Y736,DO-08,0,
/// </summary>
public static string Switch_Back = "Switch_Back";
}
public enum IO_VALUE
{
......
......@@ -41,29 +41,28 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("IO_DOLength")]
public string IO_DOLength { get; set; }
/// <summary>
/// PRO,出空料架流水线AGV节点名称,OutL_AgvName,A2,,,,,,,
///PRO,L1线AGV节点名称,L1_AgvName,A2,,,,,,,
/// </summary>
[ConfigProAttribute("OutL_AgvName" )]
public string OutL_AgvName { get; set; }
[ConfigProAttribute("L1_AgvName")]
public string L1_AgvName { get; set; }
/// <summary>
/// PRO,入料架流水线AGV节点名称,InL_AgvName,A1,,,,,,,
/// PRO,L2线AGV节点名称,L2_AgvName,A1,,,,,,,
/// </summary>
[ConfigProAttribute("InL_AgvName")]
public string InL_AgvName { get; set; }
[ConfigProAttribute("L2_AgvName")]
public string L2_AgvName { get; set; }
public double AirCheckSeconds = 60;
/// <summary>
/// PRO 入料架流水线入口RFIDIP InL_In_RFIDIP 192.168.120.25
///PRO,L2线入口RFIDIP,L2_In_RFIDIP,192.168.103.108,,,,,, ,
/// </summary>
[ConfigProAttribute("InL_In_RFIDIP", false)]
public string InL_In_RFIDIP { get; set; }
[ConfigProAttribute("L2_In_RFIDIP", false)]
public string L2_In_RFIDIP { get; set; }
/// <summary>
/// PRO 入料架流水线出口RFIDIP InL_Out_RFIDIP 192.168.120.26
/// PRO,L2线出口RFIDIP,L2_Out_RFIDIP,192.168.103.107,,,,,, ,
/// </summary>
[ConfigProAttribute("InL_Out_RFIDIP", false)]
public string InL_Out_RFIDIP { get; set; }
[ConfigProAttribute("L2_Out_RFIDIP", false)]
public string L2_Out_RFIDIP { get; set; }
protected override void initMustHavePro()
{
MustHaveDIList = new List<string>();
......
......@@ -68,6 +68,9 @@
this.btnVmiStop = new System.Windows.Forms.Button();
this.chbAuto = new System.Windows.Forms.CheckBox();
this.lblThisSta = new System.Windows.Forms.Label();
this.btnTranverse = new System.Windows.Forms.Button();
this.btnUpdown = new System.Windows.Forms.Button();
this.btnSwitch = new System.Windows.Forms.Button();
this.contextMenuStrip1.SuspendLayout();
this.groupBox5.SuspendLayout();
this.groupBox2.SuspendLayout();
......@@ -215,6 +218,9 @@
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox2.Controls.Add(this.btnSwitch);
this.groupBox2.Controls.Add(this.btnUpdown);
this.groupBox2.Controls.Add(this.btnTranverse);
this.groupBox2.Controls.Add(this.label1);
this.groupBox2.Controls.Add(this.numericUpDown1);
this.groupBox2.Controls.Add(this.btnStopTDown);
......@@ -337,9 +343,9 @@
// btnOLOutStopDown
//
this.btnOLOutStopDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOLOutStopDown.Location = new System.Drawing.Point(233, 368);
this.btnOLOutStopDown.Location = new System.Drawing.Point(147, 369);
this.btnOLOutStopDown.Name = "btnOLOutStopDown";
this.btnOLOutStopDown.Size = new System.Drawing.Size(173, 39);
this.btnOLOutStopDown.Size = new System.Drawing.Size(134, 39);
this.btnOLOutStopDown.TabIndex = 281;
this.btnOLOutStopDown.Text = "出料线出口阻挡下降";
this.btnOLOutStopDown.UseVisualStyleBackColor = true;
......@@ -348,9 +354,9 @@
// btnOLInStopDown
//
this.btnOLInStopDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOLInStopDown.Location = new System.Drawing.Point(233, 323);
this.btnOLInStopDown.Location = new System.Drawing.Point(147, 324);
this.btnOLInStopDown.Name = "btnOLInStopDown";
this.btnOLInStopDown.Size = new System.Drawing.Size(173, 39);
this.btnOLInStopDown.Size = new System.Drawing.Size(134, 39);
this.btnOLInStopDown.TabIndex = 280;
this.btnOLInStopDown.Text = "出料线入口阻挡下降";
this.btnOLInStopDown.UseVisualStyleBackColor = true;
......@@ -359,9 +365,9 @@
// btnInLOutStopDown
//
this.btnInLOutStopDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnInLOutStopDown.Location = new System.Drawing.Point(22, 368);
this.btnInLOutStopDown.Location = new System.Drawing.Point(7, 369);
this.btnInLOutStopDown.Name = "btnInLOutStopDown";
this.btnInLOutStopDown.Size = new System.Drawing.Size(173, 39);
this.btnInLOutStopDown.Size = new System.Drawing.Size(134, 39);
this.btnInLOutStopDown.TabIndex = 279;
this.btnInLOutStopDown.Text = "进料线出口阻挡下降";
this.btnInLOutStopDown.UseVisualStyleBackColor = true;
......@@ -370,9 +376,9 @@
// btnInLInStopDown
//
this.btnInLInStopDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnInLInStopDown.Location = new System.Drawing.Point(22, 323);
this.btnInLInStopDown.Location = new System.Drawing.Point(7, 324);
this.btnInLInStopDown.Name = "btnInLInStopDown";
this.btnInLInStopDown.Size = new System.Drawing.Size(173, 39);
this.btnInLInStopDown.Size = new System.Drawing.Size(134, 39);
this.btnInLInStopDown.TabIndex = 278;
this.btnInLInStopDown.Text = "进料线入口阻挡下降";
this.btnInLInStopDown.UseVisualStyleBackColor = true;
......@@ -381,9 +387,9 @@
// btnInLineRun
//
this.btnInLineRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnInLineRun.Location = new System.Drawing.Point(22, 278);
this.btnInLineRun.Location = new System.Drawing.Point(7, 279);
this.btnInLineRun.Name = "btnInLineRun";
this.btnInLineRun.Size = new System.Drawing.Size(173, 39);
this.btnInLineRun.Size = new System.Drawing.Size(134, 39);
this.btnInLineRun.TabIndex = 276;
this.btnInLineRun.Text = "进料线体运转";
this.btnInLineRun.UseVisualStyleBackColor = true;
......@@ -392,9 +398,9 @@
// btnOutL
//
this.btnOutL.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOutL.Location = new System.Drawing.Point(233, 278);
this.btnOutL.Location = new System.Drawing.Point(147, 279);
this.btnOutL.Name = "btnOutL";
this.btnOutL.Size = new System.Drawing.Size(173, 39);
this.btnOutL.Size = new System.Drawing.Size(134, 39);
this.btnOutL.TabIndex = 277;
this.btnOutL.Text = "出料线体运转";
this.btnOutL.UseVisualStyleBackColor = true;
......@@ -412,17 +418,16 @@
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel2.AutoScroll = true;
this.tableLayoutPanel2.ColumnCount = 1;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.Location = new System.Drawing.Point(5, 14);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 19);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(197, 231);
this.tableLayoutPanel2.Size = new System.Drawing.Size(202, 229);
this.tableLayoutPanel2.TabIndex = 103;
//
// groupBox1
......@@ -437,17 +442,16 @@
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.AutoScroll = true;
this.tableLayoutPanel1.ColumnCount = 1;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 14);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 19);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(197, 231);
this.tableLayoutPanel1.Size = new System.Drawing.Size(202, 229);
this.tableLayoutPanel1.TabIndex = 102;
//
// richTextBox1
......@@ -596,6 +600,39 @@
this.lblThisSta.TabIndex = 216;
this.lblThisSta.Text = "等待启动";
//
// btnTranverse
//
this.btnTranverse.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnTranverse.Location = new System.Drawing.Point(287, 279);
this.btnTranverse.Name = "btnTranverse";
this.btnTranverse.Size = new System.Drawing.Size(134, 39);
this.btnTranverse.TabIndex = 287;
this.btnTranverse.Text = "横移运转";
this.btnTranverse.UseVisualStyleBackColor = true;
this.btnTranverse.Click += new System.EventHandler(this.btnTranverse_Click);
//
// btnUpdown
//
this.btnUpdown.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnUpdown.Location = new System.Drawing.Point(287, 324);
this.btnUpdown.Name = "btnUpdown";
this.btnUpdown.Size = new System.Drawing.Size(134, 39);
this.btnUpdown.TabIndex = 288;
this.btnUpdown.Text = "横移机构上升";
this.btnUpdown.UseVisualStyleBackColor = true;
this.btnUpdown.Click += new System.EventHandler(this.btnUpdown_Click);
//
// btnSwitch
//
this.btnSwitch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnSwitch.Location = new System.Drawing.Point(287, 369);
this.btnSwitch.Name = "btnSwitch";
this.btnSwitch.Size = new System.Drawing.Size(134, 39);
this.btnSwitch.TabIndex = 289;
this.btnSwitch.Text = "料串切换气缸前进";
this.btnSwitch.UseVisualStyleBackColor = true;
this.btnSwitch.Click += new System.EventHandler(this.btnSwitch_Click);
//
// FrmVMIClient
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
......@@ -676,6 +713,9 @@
private System.Windows.Forms.TextBox txtShelfId;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.CheckBox chbMoveStop;
private System.Windows.Forms.Button btnSwitch;
private System.Windows.Forms.Button btnUpdown;
private System.Windows.Forms.Button btnTranverse;
}
}
......@@ -47,11 +47,11 @@ namespace OnlineStore.VMILineClient
return;
}
timer1.Enabled = true;
groupBox5.Text = "AGV调度通信,入料线体 [" + vmiLine.Config.InL_AgvName + "] ,出料线体 [" + vmiLine.Config.OutL_AgvName + "] ";
groupBox5.Text = "AGV调度通信,入料线体 [" + vmiLine.Config.L1_AgvName + "] ,出料线体 [" + vmiLine.Config.L2_AgvName + "] ";
chbDebug.Checked = vmiLine.IsDebug;
this.ShowInTaskbar = true;
LoadIOList();
txtname.Text = vmiLine.Config.InL_AgvName;
txtname.Text = vmiLine.Config.L1_AgvName;
notifyIcon1.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
HideForm();
this.Opacity = 1;
......@@ -122,7 +122,7 @@ namespace OnlineStore.VMILineClient
return;
}
ReadIOList();
lblThisSta.Text = LineManager.GetRunStr(vmiLine.runStatus)+" "+(vmiLine.IsSleep ? "休眠中" :"");
lblThisSta.Text = LineManager.GetRunStr(vmiLine.runStatus) + " " + (vmiLine.IsSleep ? "休眠中" : "");
lblWarnMsg.Text = vmiLine.WarnMsg;
lblInfo.Text = vmiLine.GetRunInfo();
}
......@@ -146,7 +146,8 @@ namespace OnlineStore.VMILineClient
else if (vmiLine.StartRun())
{
btnVmiStart.Text = "复位";
}else
}
else
{
btnVmiStart.Text = "启动";
}
......@@ -332,32 +333,32 @@ namespace OnlineStore.VMILineClient
}
private void btnInLineRun_Click(object sender, EventArgs e)
{
BtnMove(btnInLineRun, "进料线体运转", "进料线体停止", IO_Type.InL_Run);
BtnMove(btnInLineRun, "进料线体运转", "进料线体停止", IO_Type.L1_Run);
}
private void btnInLInStopDown_Click(object sender, EventArgs e)
{
BtnMove(btnInLInStopDown, "进料线入口阻挡下降", "进料线入口阻挡上升", IO_Type.InL_InStopDown);
BtnMove(btnInLInStopDown, "进料线入口阻挡下降", "进料线入口阻挡上升", IO_Type.L1_StopDown);
}
private void btnInLOutStopDown_Click(object sender, EventArgs e)
{
BtnMove(btnInLOutStopDown, "进料线出口阻挡下降", "进料线出口阻挡上升", IO_Type.InL_OutStopDown);
BtnMove(btnInLOutStopDown, "进料线出口阻挡下降", "进料线出口阻挡上升", IO_Type.L1_OutStopDown);
}
private void btnOLInStopDown_Click(object sender, EventArgs e)
{
BtnMove(btnOLInStopDown, "出料线入口阻挡下降", "出料线入口阻挡上升", IO_Type.OutL_InStopDown);
BtnMove(btnOLInStopDown, "出料线入口阻挡下降", "出料线入口阻挡上升", IO_Type.L2_StopDown);
}
private void btnOutL_Click(object sender, EventArgs e)
{
BtnMove(btnOutL, "出料线体运转", "出料线体停止", IO_Type.OutL_Run);
BtnMove(btnOutL, "出料线体运转", "出料线体停止", IO_Type.L2_Run);
}
private void btnOLOutStopDown_Click(object sender, EventArgs e)
{
BtnMove(btnOLOutStopDown, "出料线出口阻挡下降", "出料线出口阻挡上升", IO_Type.OutL_OutStopDown);
BtnMove(btnOLOutStopDown, "出料线出口阻挡下降", "出料线出口阻挡上升", IO_Type.L2_OutStopDown);
}
private void btnCloseA_Click(object sender, EventArgs e)
......@@ -395,14 +396,17 @@ namespace OnlineStore.VMILineClient
private void btnStopTDown_Click(object sender, EventArgs e)
{
int value = (int)numericUpDown1.Value;
string iotype = IO_Type.InL_InStopDown;
///进料线_入口阻挡
//进料线_出口阻挡
//出料线_入口阻挡
string iotype = IO_Type.L1_StopDown;
if (cmbStopList.SelectedIndex.Equals(1))
{
iotype = IO_Type.InL_OutStopDown;
iotype = IO_Type.L1_OutStopDown;
}
else if (cmbStopList.SelectedIndex.Equals(2))
{
iotype = IO_Type.OutL_InStopDown;
iotype = IO_Type.L2_StopDown;
}
vmiLine.StopIOMove(iotype, value);
}
......@@ -412,5 +416,71 @@ namespace OnlineStore.VMILineClient
vmiLine.MoveStop = chbMoveStop.Checked;
LogUtil.info(vmiLine.Name + "用户切换是否暂停: " + vmiLine.MoveStop);
}
private void btnTranverse_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
LogUtil.info(vmiLine.Name + "点击【" + btn.Text + "】 ");
if (btn.Text.Equals("横移运转"))
{
IOManager.IOMove(IO_Type.Traverse1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.Traverse2_Run, IO_VALUE.HIGH);
btn.Text = "横移停止";
btn.BackColor = Color.Aqua;
}
else
{
IOManager.IOMove(IO_Type.Traverse1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Traverse2_Run, IO_VALUE.LOW);
btn.Text = "横移运转";
btn.BackColor = Color.White;
}
}
private void btnUpdown_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
LogUtil.info(vmiLine.Name + "点击【" + btn.Text + "】 ");
if (btn.Text.Equals("横移机构上升"))
{
IOManager.IOMove(IO_Type.Traverse_Down_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Traverse_Up_SOL, IO_VALUE.HIGH);
btn.Text = "横移机构下降";
btn.BackColor = Color.Aqua;
}
else
{
IOManager.IOMove(IO_Type.Traverse_Up_SOL, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Traverse_Down_SOL, IO_VALUE.HIGH);
btn.Text = "横移机构上升";
btn.BackColor = Color.White;
}
}
private void btnSwitch_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
LogUtil.info(vmiLine.Name + "点击【" + btn.Text + "】 ");
if (btn.Text.Equals("料串切换气缸前进"))
{
IOManager.IOMove(IO_Type.Switch_Back, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Switch_Forward, IO_VALUE.HIGH);
btn.Text = "料串切换气缸后退";
btn.BackColor = Color.Aqua;
}
else
{
IOManager.IOMove(IO_Type.Switch_Forward, IO_VALUE.LOW);
Thread.Sleep(500);
IOManager.IOMove(IO_Type.Switch_Back, IO_VALUE.HIGH);
btn.Text = "料串切换气缸前进";
btn.BackColor = Color.White;
}
}
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!