Commit 65d39c59 张东亮

合并分支 '横移机构' 到 'master'

横移机构

查看合并请求 !1
2 个父辈 8bde1d13 92c43c5a
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
...@@ -39,18 +39,15 @@ ...@@ -39,18 +39,15 @@
<Reference Include="Asa.IOModule.AIOBOX"> <Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath> <HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
</Reference> </Reference>
<Reference Include="Asa.RFID"> <Reference Include="Asa.RFID.HiStation">
<HintPath>..\..\dll\Asa.RFID.dll</HintPath> <HintPath>..\..\dll\Asa.RFID.HiStation.dll</HintPath>
</Reference>
<Reference Include="Asa.RFID.IReadAll">
<HintPath>..\..\dll\Asa.RFID.IReadAll.dll</HintPath>
</Reference> </Reference>
<Reference Include="Client"> <Reference Include="Client">
<HintPath>..\..\dll\Client.dll</HintPath> <HintPath>..\..\dll\Client.dll</HintPath>
</Reference> </Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\CodeLibrary.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\..\RC32-SZBOSCH-ACSingleStore\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="HFReader9CSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="HFReader9CSharp, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\RFID\HFReader9CSharp.dll</HintPath> <HintPath>..\..\dll\RFID\HFReader9CSharp.dll</HintPath>
......
...@@ -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,,,,,,,
...@@ -5,16 +5,23 @@ using System.Collections.Concurrent; ...@@ -5,16 +5,23 @@ using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary namespace OnlineStore.DeviceLibrary
{ {
public class RFIDManager public class RFIDManager
{ {
private static ReadAll readAll =new ReadAll ("TheRFID"); private static Asa.RFID.ReadAll read;
private static bool IsOpen = false; private static bool IsOpen = false;
// private static ConcurrentDictionary<string, string> LastRfidMap = new ConcurrentDictionary<string, string>(); public static bool IsAuto = false;
public static void Open(string[] iparray) /// <summary>
/// 是否连接
/// </summary>
public static bool IsConnected { get; set; } = false;
private static Dictionary<string, string> LastRfidMap = new Dictionary<string, string>();
public static void Open(string[] ip)
{ {
if (IsOpen) if (IsOpen)
{ {
...@@ -22,15 +29,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -22,15 +29,9 @@ namespace OnlineStore.DeviceLibrary
} }
try try
{ {
int port = ConfigAppSettings.GetIntValue(Setting_Init.RfidServer_Port); read = new ReadAll("TheRFID");
if (port <= 0) read.Received += Read_Received;
{ read.Start(13001);
port = 13001;
}
// readAll.Received += ReadAll_Received;
// readAll.Log += ReadAll_Log;
LogUtil.info("RFID Server Open,port=" + port);
readAll.Start(port);
IsOpen = true; IsOpen = true;
} }
catch (Exception ex) catch (Exception ex)
...@@ -39,7 +40,27 @@ namespace OnlineStore.DeviceLibrary ...@@ -39,7 +40,27 @@ namespace OnlineStore.DeviceLibrary
} }
} }
private static string lastStr = ""; private static string lastStr = "";
private static void Read_Received(string ip, string id)
{
try
{
if(LastRfidMap.ContainsKey(ip))
{
LastRfidMap[ip] = id;
}
else
{
LastRfidMap.Add(ip,id);
}
}
catch (ObjectDisposedException ex)
{
//程序刚退出,又回传数据
}
}
private static void ReadAll_Log(string ip, string log) private static void ReadAll_Log(string ip, string log)
{ {
string str = "RFID : [" + ip + "] " + log; string str = "RFID : [" + ip + "] " + log;
...@@ -51,20 +72,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -51,20 +72,21 @@ namespace OnlineStore.DeviceLibrary
lastStr = str; lastStr = str;
} }
public static RFIDData ReadRFID(string ip, bool isClear = false) public static RFIDData ReadRFID(string ip,bool isClear= true)
{ {
try try
{ {
if (String.IsNullOrEmpty(ip).Equals(false)) if (String.IsNullOrEmpty(ip).Equals(false) && read!=null)
{ {
string outValue = readAll.Read(ip);
if (isClear) if (isClear)
{ {
readAll.Clear(ip); read.Clear(ip);
} }
Thread.Sleep(100);
string outValue = read.Read(ip);
RFIDData data = new RFIDData(outValue); RFIDData data = new RFIDData(outValue);
return data; return data;
} }
} }
...@@ -80,10 +102,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -80,10 +102,15 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
readAll.Stop(); if(IsOpen)
{
read.Stop();
IsOpen = false;
}
} }
catch (Exception ex) catch (Exception ex)
{ {
IsOpen = false;
LogUtil.error("关闭RFID出错:" + ex.ToString()); LogUtil.error("关闭RFID出错:" + ex.ToString());
} }
} }
......
...@@ -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>();
......
...@@ -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="VMI总仓进出料架缓存线" /> <add key="App_Title" value="VMI总仓进出料架缓存线" />
<!--Server address--> <!--Server address-->
<add key="http.server" value="http://10.85.160.25/myproject/" /> <add key="http.server" value="http://10.85.162.124/myproject/" />
<!--storeType--> <!--storeType-->
<add key="store_count" value="1" /> <add key="store_count" value="1" />
<!--start one store config--> <!--start one store config-->
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<add key="DIMS" value="60" /> <add key="DIMS" value="60" />
<add key="DOMS" value="300" /> <add key="DOMS" value="300" />
<!--AGV调度服务器地址--> <!--AGV调度服务器地址-->
<add key="AgvServerIp" value="192.168.103.12" /> <add key="AgvServerIp" value="10.85.162.40" />
<!--是否调试状态--> <!--是否调试状态-->
<add key="IsInDebug" value="1" /> <add key="IsInDebug" value="1" />
<add key ="Agv_Log_Open" value ="1"/> <add key ="Agv_Log_Open" value ="1"/>
...@@ -29,8 +29,11 @@ ...@@ -29,8 +29,11 @@
<file type="log4net.Util.PatternString" value="logs/vmiLine.log" /> <file type="log4net.Util.PatternString" value="logs/vmiLine.log" />
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true" /> <appendToFile value="true" />
<rollingStyle value="Date" /> <param name="MaxSizeRollBackups" value="10"/>
<datePattern value="yyyy-MM-dd" /> <!-- 切割最多文件数 -->
<param name="MaximumFileSize" value="100MB"/>
<!-- 每个文件的大小 -->
<param name="RollingStyle" value="Size"/>
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
...@@ -39,8 +42,11 @@ ...@@ -39,8 +42,11 @@
<file value="logs/TheRFID-vmi.log"/> <file value="logs/TheRFID-vmi.log"/>
<param name="Encoding" value="UTF-8" /> <param name="Encoding" value="UTF-8" />
<appendToFile value="true"/> <appendToFile value="true"/>
<rollingStyle value="Date"/> <param name="MaxSizeRollBackups" value="10"/>
<datePattern value="yyyy-MM-dd"/> <!-- 切割最多文件数 -->
<param name="MaximumFileSize" value="100MB"/>
<!-- 每个文件的大小 -->
<param name="RollingStyle" value="Size"/>
<layout type="log4net.Layout.PatternLayout"> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" /> <conversionPattern value="[%date][%t]%-5p %m%n" />
</layout> </layout>
......
...@@ -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,92 @@ namespace OnlineStore.VMILineClient ...@@ -395,22 +396,92 @@ 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)
{
BtnMove(btnTranverse, "横移运转", "横移停止", IO_Type.L2_Run);
//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!