Commit 75a7ebc3 张东亮

VMI横移

1 个父辈 8bde1d13
...@@ -5,39 +5,39 @@ PRO,IO模块IP,PRO_AOI_IP_1,192.168.103.25,,,,,,, ...@@ -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,急停,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,复位,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,出料线入口检测,L2_InCheck,2,PRO_AOI_IP_1,0,出料线入口检测,X723,DI-03,0,
DI,进料线中间位检测,InL_MIddleCheck,3,PRO_AOI_IP_1,0,进料线出口阻挡检测,X724,DI-04,0, DI,出料线检测1,L2_StopCheck1,3,PRO_AOI_IP_1,0,出料线检测1,X724,DI-04,0,
,,,4,PRO_AOI_IP_1,0,,X725,DI-05,0, DI,料串切换气缸前进端,Switch_Forward_Sig,4,PRO_AOI_IP_1,0,料串切换气缸前进端,X725,DI-05,0,
DI,进料线出口阻挡检测,InL_OutStopCheck,5,PRO_AOI_IP_1,0,进料线出口检测,X726,DI-06,0, DI,出料线出口检测,L2_OutCheck,5,PRO_AOI_IP_1,0,出料线出口检测,X726,DI-06,0,
DI,出料线入口检测,OutL_InCheck,6,PRO_AOI_IP_1,0,出料线入口检测,X727,DI-07,0, DI,入料线入口检测,L1_InCheck,6,PRO_AOI_IP_1,0,入料线入口检测,X727,DI-07,0,
DI,出料线入口阻挡检测,OutL_InStopCheck,7,PRO_AOI_IP_1,0,出料线入口阻挡检测,X728,DI-08,0, DI,入料线阻挡检测,L1_StopCheck,7,PRO_AOI_IP_1,0,入料线阻挡检测,X728,DI-08,0,
,,,8,PRO_AOI_IP_1,0,,X729,DO-01,0, DI,料串切换气缸后退端,Switch_Back_Sig,8,PRO_AOI_IP_1,0,料串切换气缸后退端,X729,DO-01,0,
DI,出料线出口阻挡检测,OutL_OutStopCheck,9,PRO_AOI_IP_1,0,出料线出口阻挡检测,X730,DO-02,0, DI,入料线出口检测,L1_OutCheck,9,PRO_AOI_IP_1,0,入料线出口检测,X730,DO-02,0,
,出料线人工取料信号,,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0, DI,出料线人工取料信号,L1_ManualRecSig,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0,
,,,11,PRO_AOI_IP_1,0,,X732,DO-04,0, DI,进料线体横移上升端,L1_UpDown_Up_Sig,11,PRO_AOI_IP_1,0,进料线体横移上升端,X732,DO-04,0,
,,,12,PRO_AOI_IP_1,0,,X733,DO-05,0, DI,进料线体横移下降端,L1_UpDown_Down_Sig,12,PRO_AOI_IP_1,0,进料线体横移下降端,X733,DO-05,0,
,,,13,PRO_AOI_IP_1,0,,X734,DO-06,0, DI,出料线体横移上升端,L2_UpDown_Up_Sig,13,PRO_AOI_IP_1,0,出料线体横移上升端,X734,DO-06,0,
,,,14,PRO_AOI_IP_1,0,,X735,DO-07,0, DI,出料线体横移下降端,L2_UpDown_Down_Sig,14,PRO_AOI_IP_1,0,出料线体横移下降端,X735,DO-07,0,
,,,15,PRO_AOI_IP_1,0,,X736,DO-08,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,运行状态(指示灯),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,故障状态(指示灯),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,进料线驱动电机运转,L1_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,出料线驱动电机运转,L2_Run,3,PRO_AOI_IP_1,0,出料线驱动电机运转,Y724,DI-04,0,
DO,出料线入口阻挡,OutL_InStopDown,4,PRO_AOI_IP_1,0,出料线入口阻挡,Y725,DI-05,0, DO,进料线阻挡下降,L1_StopDown,4,PRO_AOI_IP_1,0,进料线阻挡下降,Y725,DI-05,0,
,,,5,PRO_AOI_IP_1,0,,Y726,DI-06,0, ,进料线阻挡2下降,L1_StopDown2,5,PRO_AOI_IP_1,0,进料线阻挡2下降,Y726,DI-06,0,
DO,出料线出口阻挡,OutL_OutStopDown,6,PRO_AOI_IP_1,0,出料线出口阻挡,Y727,DI-07,0, DO,进料线出口阻挡下降,L1_OutStopDown,6,PRO_AOI_IP_1,0,进料线出口阻挡下降,Y727,DI-07,0,
DO,进料线出口阻挡,InL_OutStopDown,7,PRO_AOI_IP_1,0,进料线出口阻挡,Y728,DI-08,0, DO,出料线出口阻挡下降,L2_OutStopDown,7,PRO_AOI_IP_1,0,出料线阻挡1下降,Y728,DI-08,0,
,,,8,PRO_AOI_IP_1,0,,Y729,DO-01,0, ,出料线阻挡2下降,L2_StopDown2,8,PRO_AOI_IP_1,0,出料线阻挡2下降,Y729,DO-01,0,
DO,进料线入口阻挡,InL_InStopDown,9,PRO_AOI_IP_1,0,进料线入口阻挡,Y730,DO-02,0, DO,出料线阻挡下降,L2_StopDown,9,PRO_AOI_IP_1,0,出料线阻挡下降,Y730,DO-02,0,
,,,10,PRO_AOI_IP_1,0,,Y731,DO-03,0, DO,横移机构上升SOL,Traverse_Up_SOL,10,PRO_AOI_IP_1,0,横移机构上升SOL,Y731,DO-03,0,
,,,11,PRO_AOI_IP_1,0,,Y732,DO-04,0, DO,横移机构下降SOL,Traverse_Down_SOL,11,PRO_AOI_IP_1,0,横移机构下降SOL,Y732,DO-04,0,
,,,12,PRO_AOI_IP_1,0,,Y733,DO-05,0, DO,横移电机1运转,Traverse1_Run,12,PRO_AOI_IP_1,0,横移电机1运转,Y733,DO-05,0,
,,,13,PRO_AOI_IP_1,0,,Y734,DO-06,0, DO,横移电机2运转,Traverse2_Run,13,PRO_AOI_IP_1,0,横移电机2运转,Y734,DO-06,0,
,,,14,PRO_AOI_IP_1,0,,Y735,DO-07,0, DO,料串切换气缸前进,Switch_Forward,14,PRO_AOI_IP_1,0,料串切换气缸前进,Y735,DO-07,0,
,,,15,PRO_AOI_IP_1,0,,Y736,DO-08,0, DO,料串切换气缸后退,Switch_Back,15,PRO_AOI_IP_1,0,料串切换气缸后退,Y736,DO-08,0,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,, PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,出空料架流水线AGV节点名称,OutL_AgvName,A2,,,,,,, PRO,L1线AGV节点名称,L1_AgvName,A2,,,,,,,
PRO,入料架流水线AGV节点名称,InL_AgvName,A1,,,,,,, PRO,L2线AGV节点名称,L2_AgvName,A1,,,,,,,
PRO,入料架流水线入口RFIDIP,InL_In_RFIDIP,192.168.103.108,,,,,, , PRO,L2线入口RFIDIP,L2_In_RFIDIP,192.168.103.108,,,,,, ,
PRO,入料架流水线出口RFIDIP,InL_Out_RFIDIP,192.168.103.107,,,,,, , PRO,L2线出口RFIDIP,L2_Out_RFIDIP,192.168.103.107,,,,,, ,
PRO,休眠秒数(秒),SleepSeconds,60,,,,,,, PRO,休眠秒数(秒),SleepSeconds,40,,,,,,,
...@@ -126,9 +126,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -126,9 +126,8 @@ namespace OnlineStore.DeviceLibrary
public string GetRunInfo() public string GetRunInfo()
{ {
return "进料线出口" + Config.InL_AgvName + ":" + AgvClient.GetAction(Config.InL_AgvName) + ",料架: " + LastInShelfId + "\r\n" + return "进料线入口" + Config.L1_AgvName + ":" + AgvClient.GetAction(Config.L1_AgvName) + ",料架: " + LastInShelfId + "\r\n" +
"出料线进口" + Config.OutL_AgvName + ":" + AgvClient.GetAction(Config.OutL_AgvName) + ",料架: " + LastOutShelfId + "\r\n"; "出料线出口" + Config.L2_AgvName + ":" + AgvClient.GetAction(Config.L2_AgvName) + ",料架: " + LastOutShelfId + "\r\n";
// "进料出口" + Config.InL_AgvName + ":" + AgvClient.GetAction(Config.InL_AgvName) + " 出料进口" + Config.OutL_AgvName + ":" + AgvClient.GetAction(Config.OutL_AgvName) + "\r\n"+
} }
#endregion #endregion
...@@ -153,20 +152,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -153,20 +152,21 @@ namespace OnlineStore.DeviceLibrary
if (needCheckList.Count <= 0) if (needCheckList.Count <= 0)
{ {
needCheckList.Add(IO_Type.InL_InStopCheck); needCheckList.Add(IO_Type.L1_InCheck);
needCheckList.Add(IO_Type.InL_MIddleCheck); needCheckList.Add(IO_Type.L1_StopCheck);
needCheckList.Add(IO_Type.InL_OutStopCheck); needCheckList.Add(IO_Type.L1_OutCheck);
needCheckList.Add(IO_Type.OutL_InCheck); needCheckList.Add(IO_Type.L2_InCheck);
needCheckList.Add(IO_Type.OutL_InStopCheck); needCheckList.Add(IO_Type.L2_StopCheck1);
needCheckList.Add(IO_Type.OutL_InStopDown); 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; 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) ) 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)) if (currB.Equals(ClientAction.None) || currB.Equals(ClientAction.NeedLeave) || currB.Equals(ClientAction.NeedEnter))
{ {
agvBusy = false; agvBusy = false;
...@@ -229,15 +229,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -229,15 +229,15 @@ namespace OnlineStore.DeviceLibrary
if (needSleep) if (needSleep)
{ {
IsSleep = true; IsSleep = true;
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.LOW); IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.LOW);
} }
else else
{ {
IsSleep = false; IsSleep = false;
LastBusyTime = DateTime.Now; LastBusyTime = DateTime.Now;
IOManager.IOMove(IO_Type.InL_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L1_Run, IO_VALUE.HIGH);
IOManager.IOMove(IO_Type.OutL_Run, IO_VALUE.HIGH); IOManager.IOMove(IO_Type.L2_Run, IO_VALUE.HIGH);
}; };
} }
#endregion #endregion
......
...@@ -86,21 +86,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -86,21 +86,21 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(logName); LogUtil.info(logName);
UpdateAction(id, Asa.ClientAction.Ready); UpdateAction(id, Asa.ClientAction.Ready);
if (id.Equals(LineManager.Config.OutL_AgvName)) if (id.Equals(LineManager.Config.L1_AgvName))
{ {
LineManager.VMILine.UpdateSleep(false); 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 Task.Factory.StartNew(delegate
{ {
SetStatus(id, "", ClientAction.MayEnter); SetStatus(id, "", ClientAction.MayEnter);
LogUtil.info(logName + " ,等待OutL_InCheck"); LogUtil.info(logName + " ,等待L1_InCheck");
try try
{ {
WaitUtil.Wait(60000, delegate WaitUtil.Wait(60000, delegate
{ {
return IOManager.IOValue(IO_Type.OutL_InCheck).Equals(IO_VALUE.HIGH); return IOManager.IOValue(IO_Type.L1_InCheck).Equals(IO_VALUE.HIGH);
}, "等待OutL_InCheck=HIGH"); }, "等待L1_InCheck=HIGH");
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -120,21 +120,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -120,21 +120,22 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(logName + " OutL_InCheck 检测到有料架,AGV的料架无法进入"); LogUtil.error(logName + " L1_InCheck 检测到有料架,AGV的料架无法进入");
SetStatus(id, "", ClientAction.None, ClientLevel.High); 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; 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.UpdateSleep(false);
LineManager.VMILine.StopIOMove(IO_Type.InL_OutStopDown, 1500); LineManager.VMILine.StopIOMove(IO_Type.L2_OutStopDown, 1500);
//agvClient.MayLeave(id); //agvClient.MayLeave(id);
SetStatus(id, shefId, ClientAction.MayLeave);
LogUtil.info(logName + "下降 InL_OutStopDown , " + shefId); LogUtil.info(logName + "下降 L2_OutStopDown , " + shefId);
Task.Factory.StartNew(delegate Task.Factory.StartNew(delegate
{ {
...@@ -151,7 +152,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -151,7 +152,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
LogUtil.error(logName + " InL_OutStopCheck 未检测到料架,无法将料架进入AGV"); LogUtil.error(logName + " L2_OutCheck 未检测到料架,无法将料架进入AGV");
SetStatus(id, "", ClientAction.None, ClientLevel.High); SetStatus(id, "", ClientAction.None, ClientLevel.High);
} }
} }
......
...@@ -25,77 +25,144 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -25,77 +25,144 @@ namespace OnlineStore.LoadCSVLibrary
} }
/// <summary> /// <summary>
/// VMI流水线,DI 急停 SuddenStop_BTN X01 DI-01 /// DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X721,DI-01,0,
/// </summary> /// </summary>
public static string SuddenStop_BTN = "SuddenStop_BTN"; public static string SuddenStop_BTN = "SuddenStop_BTN";
/// <summary> /// <summary>
/// VMI流水线 DI 复位 Reset_BTN X02 DI-02 /// DI,复位,Reset_BTN,1,PRO_AOI_IP_1,0,复位,X722,DI-02,0,
/// </summary> /// </summary>
public static string Reset_BTN = "Reset_BTN"; 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> /// <summary>
/// DI 进料线中间料架检测 InL_MIddleCheck /// DI,出料线检测1,L2_StopCheck1,3,PRO_AOI_IP_1,0,出料线检测1,X724,DI-04,0,
/// </summary> /// </summary>
public static string InL_MIddleCheck = "InL_MIddleCheck"; public static string L2_StopCheck1 = "L2_StopCheck1";
/// <summary> /// <summary>
/// DI 进料线阻挡检测1 InL_InStopCheck /// DI,料串切换气缸前进端,Switch_Forward_Sig,4,PRO_AOI_IP_1,0,料串切换气缸前进端,X725,DI-05,0,
/// </summary> /// </summary>
public static string InL_InStopCheck = "InL_InStopCheck"; public static string Switch_Forward_Sig = "Switch_Forward_Sig";
/// <summary> /// <summary>
/// DI 进料线阻挡检测2 InL_OutStopCheck ///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> /// </summary>
public static string InL_OutStopCheck = "InL_OutStopCheck"; public static string L1_InCheck = "L1_InCheck";
/// <summary> /// <summary>
/// DI 出料线入口检测 OutL_InCheck ///DI,入料线阻挡检测,L1_StopCheck,7,PRO_AOI_IP_1,0,入料线阻挡检测,X728,DI-08,0,
/// </summary> /// </summary>
public static string OutL_InCheck = "OutL_InCheck"; public static string L1_StopCheck = "L1_StopCheck";
/// <summary> /// <summary>
/// DI 出料线阻挡检测1 OutL_InStopCheck /// DI,料串切换气缸后退端,Switch_Back_Sig,8,PRO_AOI_IP_1,0,料串切换气缸后退端,X729,DO-01,0,
/// </summary> /// </summary>
public static string OutL_InStopCheck = "OutL_InStopCheck"; public static string Switch_Back_Sig = "Switch_Back_Sig";
/// <summary> /// <summary>
/// DI 出料线阻挡检测2 OutL_OutStopCheck ///DI,入料线出口检测,L1_OutCheck,9,PRO_AOI_IP_1,0,入料线出口检测,X730,DO-02,0,
/// </summary> /// </summary>
public static string OutL_OutStopCheck = "OutL_OutStopCheck"; public static string L1_OutCheck = "L1_OutCheck";
/// <summary> /// <summary>
/// DO 自动指示灯 AutoRun_HddLed /// DI,出料线人工取料信号,L1_ManualRecSig,10,PRO_AOI_IP_1,0,出料线人工取料信号,X731,DO-03,0,
/// </summary> /// </summary>
public static string AutoRun_HddLed = "AutoRun_HddLed"; public static string L1_ManualRecSig = "L1_ManualRecSig";
/// <summary> /// <summary>
///DO 故障指示灯 Alarm_HddLed /// DI,进料线体横移上升端,L1_UpDown_Up_Sig,11,PRO_AOI_IP_1,0,进料线体横移上升端,X732,DO-04,0,
/// </summary> /// </summary>
public static string Alarm_HddLed = "Alarm_HddLed"; public static string L1_UpDown_Up_Sig = "L1_UpDown_Up_Sig";
/// <summary> /// <summary>
/// DO 进料线驱动电机运转 InL_Run /// DI,进料线体横移下降端,L1_UpDown_Down_Sig,12,PRO_AOI_IP_1,0,进料线体横移下降端,X733,DO-05,0,
/// </summary> /// </summary>
public static string InL_Run = "InL_Run"; public static string L1_UpDown_Down_Sig = "L1_UpDown_Down_Sig";
/// <summary> /// <summary>
/// DO 出料线驱动电机运转 OutL_Run ///DI,出料线体横移上升端,L2_UpDown_Up_Sig,13,PRO_AOI_IP_1,0,出料线体横移上升端,X734,DO-06,0,
/// </summary> /// </summary>
public static string OutL_Run = "OutL_Run"; public static string L2_UpDown_Up_Sig = "L2_UpDown_Up_Sig";
/// <summary> /// <summary>
/// DO 进料线阻挡1下降 InL_InStopDown /// DI,出料线体横移下降端,L2_UpDown_Down_Sig,14,PRO_AOI_IP_1,0,出料线体横移下降端,X735,DO-07,0,
/// </summary> /// </summary>
public static string InL_InStopDown = "InL_InStopDown"; public static string L2_UpDown_Down_Sig = "L2_UpDown_Down_Sig";
/// <summary> /// <summary>
/// DO 进料线阻挡2下降 InL_OutStopDown /// DI,包装料架检测信号,PackingShelf_Sig,15,PRO_AOI_IP_1,0,包装料架检测信号,X736,DO-08,0,
/// </summary> /// </summary>
public static string InL_OutStopDown = "InL_OutStopDown"; public static string PackingShelf_Sig = "PackingShelf_Sig";
/// <summary>
/// DO,运行状态(指示灯),AutoRun_HddLed,0,PRO_AOI_IP_1,0,运行状态(指示灯),Y721,DI-01,0,
/// </summary>
public static string AutoRun_HddLed = "AutoRun_HddLed";
/// <summary> /// <summary>
/// DO 出料线阻挡1下降 OutL_InStopDown ///DO,故障状态(指示灯),Alarm_HddLed,1,PRO_AOI_IP_1,0,故障状态(指示灯),Y722,DI-02,0,
/// </summary> /// </summary>
public static string OutL_InStopDown = "OutL_InStopDown"; public static string Alarm_HddLed = "Alarm_HddLed";
/// <summary> /// <summary>
/// DO 出料线阻挡2下降 OutL_OutStopDown ///DO,进料线驱动电机运转,L1_Run,2,PRO_AOI_IP_1,0,进料线驱动电机运转,Y723,DI-03,0,
/// </summary> /// </summary>
public static string OutL_OutStopDown = "OutL_OutStopDown"; public static string L1_Run = "L1_Run";
/// <summary>
/// DO,出料线驱动电机运转,L2_Run,3,PRO_AOI_IP_1,0,出料线驱动电机运转,Y724,DI-04,0,
/// </summary>
public static string L2_Run = "L2_Run";
/// <summary>
/// DO,进料线阻挡1下降,L1_StopDown,4,PRO_AOI_IP_1,0,进料线阻挡1下降,Y725,DI-05,0,
/// </summary>
public static string L1_StopDown = "L1_StopDown";
/// <summary>
/// DO,进料线阻挡2下降,L1_StopDown2,5,PRO_AOI_IP_1,0,进料线阻挡2下降,Y726,DI-06,0,
/// </summary>
//public static string L1_StopDown2 = "L1_StopDown2";
/// <summary>
/// DO,进料线出口阻挡下降,L1_OutStopDown,6,PRO_AOI_IP_1,0,进料线出口阻挡下降,Y727,DI-07,0,
/// </summary>
public static string L1_OutStopDown = "L1_OutStopDown";
/// <summary>
/// DO,出料线出口阻挡下降,L2_OutStopDown,7,PRO_AOI_IP_1,0,出料线阻挡1下降,Y728,DI-08,0,
/// </summary>
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 public enum IO_VALUE
{ {
......
...@@ -41,29 +41,28 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -41,29 +41,28 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("IO_DOLength")] [ConfigProAttribute("IO_DOLength")]
public string IO_DOLength { get; set; } public string IO_DOLength { get; set; }
/// <summary> /// <summary>
/// PRO,出空料架流水线AGV节点名称,OutL_AgvName,A2,,,,,,, ///PRO,L1线AGV节点名称,L1_AgvName,A2,,,,,,,
/// </summary> /// </summary>
[ConfigProAttribute("OutL_AgvName" )] [ConfigProAttribute("L1_AgvName")]
public string OutL_AgvName { get; set; } public string L1_AgvName { get; set; }
/// <summary> /// <summary>
/// PRO,入料架流水线AGV节点名称,InL_AgvName,A1,,,,,,, /// PRO,L2线AGV节点名称,L2_AgvName,A1,,,,,,,
/// </summary> /// </summary>
[ConfigProAttribute("InL_AgvName")] [ConfigProAttribute("L2_AgvName")]
public string InL_AgvName { get; set; } public string L2_AgvName { get; set; }
public double AirCheckSeconds = 60; public double AirCheckSeconds = 60;
/// <summary> /// <summary>
/// PRO 入料架流水线入口RFIDIP InL_In_RFIDIP 192.168.120.25 ///PRO,L2线入口RFIDIP,L2_In_RFIDIP,192.168.103.108,,,,,, ,
/// </summary> /// </summary>
[ConfigProAttribute("InL_In_RFIDIP", false)] [ConfigProAttribute("L2_In_RFIDIP", false)]
public string InL_In_RFIDIP { get; set; } public string L2_In_RFIDIP { get; set; }
/// <summary> /// <summary>
/// PRO 入料架流水线出口RFIDIP InL_Out_RFIDIP 192.168.120.26 /// PRO,L2线出口RFIDIP,L2_Out_RFIDIP,192.168.103.107,,,,,, ,
/// </summary> /// </summary>
[ConfigProAttribute("InL_Out_RFIDIP", false)] [ConfigProAttribute("L2_Out_RFIDIP", false)]
public string InL_Out_RFIDIP { get; set; } public string L2_Out_RFIDIP { get; set; }
protected override void initMustHavePro() protected override void initMustHavePro()
{ {
MustHaveDIList = new List<string>(); MustHaveDIList = new List<string>();
......
...@@ -11,7 +11,7 @@ using System.Threading; ...@@ -11,7 +11,7 @@ using System.Threading;
using System.IO; using System.IO;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using UserFromControl; using UserFromControl;
using OnlineStore.DeviceLibrary; using OnlineStore.DeviceLibrary;
using OnlineStore.Common; using OnlineStore.Common;
...@@ -47,11 +47,11 @@ namespace OnlineStore.VMILineClient ...@@ -47,11 +47,11 @@ namespace OnlineStore.VMILineClient
return; return;
} }
timer1.Enabled = true; 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; chbDebug.Checked = vmiLine.IsDebug;
this.ShowInTaskbar = true; this.ShowInTaskbar = true;
LoadIOList(); LoadIOList();
txtname.Text = vmiLine.Config.InL_AgvName; txtname.Text = vmiLine.Config.L1_AgvName;
notifyIcon1.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title); notifyIcon1.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
HideForm(); HideForm();
this.Opacity = 1; this.Opacity = 1;
...@@ -120,11 +120,11 @@ namespace OnlineStore.VMILineClient ...@@ -120,11 +120,11 @@ namespace OnlineStore.VMILineClient
if (!this.Visible) if (!this.Visible)
{ {
return; return;
} }
ReadIOList(); ReadIOList();
lblThisSta.Text = LineManager.GetRunStr(vmiLine.runStatus)+" "+(vmiLine.IsSleep ? "休眠中" :""); lblThisSta.Text = LineManager.GetRunStr(vmiLine.runStatus) + " " + (vmiLine.IsSleep ? "休眠中" : "");
lblWarnMsg.Text = vmiLine.WarnMsg; lblWarnMsg.Text = vmiLine.WarnMsg;
lblInfo.Text = vmiLine.GetRunInfo(); lblInfo.Text = vmiLine.GetRunInfo();
} }
private void FrmTest_FormClosing(object sender, FormClosingEventArgs e) private void FrmTest_FormClosing(object sender, FormClosingEventArgs e)
...@@ -146,8 +146,9 @@ namespace OnlineStore.VMILineClient ...@@ -146,8 +146,9 @@ namespace OnlineStore.VMILineClient
else if (vmiLine.StartRun()) else if (vmiLine.StartRun())
{ {
btnVmiStart.Text = "复位"; btnVmiStart.Text = "复位";
}else }
{ else
{
btnVmiStart.Text = "启动"; btnVmiStart.Text = "启动";
} }
} }
...@@ -332,32 +333,32 @@ namespace OnlineStore.VMILineClient ...@@ -332,32 +333,32 @@ namespace OnlineStore.VMILineClient
} }
private void btnInLineRun_Click(object sender, EventArgs e) 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) 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) 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) 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) 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) 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) private void btnCloseA_Click(object sender, EventArgs e)
...@@ -368,13 +369,13 @@ namespace OnlineStore.VMILineClient ...@@ -368,13 +369,13 @@ namespace OnlineStore.VMILineClient
private void btnNeedLeave_Click(object sender, EventArgs e) private void btnNeedLeave_Click(object sender, EventArgs e)
{ {
AgvClient.NeedLeave(txtname.Text, txtShelfId.Text); AgvClient.NeedLeave(txtname.Text, txtShelfId.Text);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedLeave); // AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedLeave);
} }
private void btnNeedEntry_Click(object sender, EventArgs e) private void btnNeedEntry_Click(object sender, EventArgs e)
{ {
AgvClient.NeedEnter(txtname.Text, txtShelfId.Text); AgvClient.NeedEnter(txtname.Text, txtShelfId.Text);
// AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedEnter); // AgvClient.SetStatus(txtname.Text, txtShelfId.Text,Asa.ClientAction.NeedEnter);
} }
private void btnInit_Click(object sender, EventArgs e) private void btnInit_Click(object sender, EventArgs e)
...@@ -395,22 +396,91 @@ namespace OnlineStore.VMILineClient ...@@ -395,22 +396,91 @@ namespace OnlineStore.VMILineClient
private void btnStopTDown_Click(object sender, EventArgs e) private void btnStopTDown_Click(object sender, EventArgs e)
{ {
int value = (int)numericUpDown1.Value; int value = (int)numericUpDown1.Value;
string iotype = IO_Type.InL_InStopDown; ///进料线_入口阻挡
//进料线_出口阻挡
//出料线_入口阻挡
string iotype = IO_Type.L1_StopDown;
if (cmbStopList.SelectedIndex.Equals(1)) if (cmbStopList.SelectedIndex.Equals(1))
{ {
iotype = IO_Type.InL_OutStopDown; iotype = IO_Type.L1_OutStopDown;
} }
else if (cmbStopList.SelectedIndex.Equals(2)) else if (cmbStopList.SelectedIndex.Equals(2))
{ {
iotype = IO_Type.OutL_InStopDown; iotype = IO_Type.L2_StopDown;
} }
vmiLine.StopIOMove(iotype, value); vmiLine.StopIOMove(iotype, value);
} }
private void chbMoveStop_CheckedChanged(object sender, EventArgs e) private void chbMoveStop_CheckedChanged(object sender, EventArgs e)
{ {
vmiLine.MoveStop = chbMoveStop.Checked; vmiLine.MoveStop = chbMoveStop.Checked;
LogUtil.info(vmiLine.Name + "用户切换是否暂停: " + vmiLine.MoveStop); 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!