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,,,,,,,
......@@ -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>();
......
......@@ -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!