Commit 16f8bb9c LN

扫码流程修改

1 个父辈 61eb4022
...@@ -212,14 +212,6 @@ namespace OnlineStore.ACPackingStore ...@@ -212,14 +212,6 @@ namespace OnlineStore.ACPackingStore
} }
} }
private void btnOpenDoor_Click(object sender, EventArgs e)
{
boxBean.CylinderMove(null, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
}
private void btnCloseDoor_Click(object sender, EventArgs e)
{
boxBean.CylinderMove(null, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
}
private void btnLocationUp_Click(object sender, EventArgs e) private void btnLocationUp_Click(object sender, EventArgs e)
{ {
...@@ -324,7 +316,8 @@ namespace OnlineStore.ACPackingStore ...@@ -324,7 +316,8 @@ namespace OnlineStore.ACPackingStore
} }
private void btnCloseCyDo_Click(object sender, EventArgs e) private void btnCloseCyDo_Click(object sender, EventArgs e)
{ {
boxBean.DoorBean.Stop();
boxBean.IOMove(IO_Type.EntranceDoor_Open, IO_VALUE.LOW); boxBean.IOMove(IO_Type.EntranceDoor_Open, IO_VALUE.LOW);
boxBean.IOMove(IO_Type.EntranceDoor_Close, IO_VALUE.LOW); boxBean.IOMove(IO_Type.EntranceDoor_Close, IO_VALUE.LOW);
boxBean.IOMove(IO_Type.TopCylinder_Down, IO_VALUE.LOW); boxBean.IOMove(IO_Type.TopCylinder_Down, IO_VALUE.LOW);
...@@ -334,5 +327,26 @@ namespace OnlineStore.ACPackingStore ...@@ -334,5 +327,26 @@ namespace OnlineStore.ACPackingStore
boxBean.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW); boxBean.IOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
boxBean.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW); boxBean.IOMove(IO_Type.LocationCylinder_Up, IO_VALUE.LOW);
} }
private void btnOpenDoor_Click(object sender, EventArgs e)
{
// boxBean.CylinderMove(null, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
if (!boxBean.DoorBean.StartOpen(null))
{
MessageBox.Show("打开移门失败");
}
}
private void btnCloseDoor_Click(object sender, EventArgs e)
{
if (!boxBean.DoorBean.StartClose(null))
{
MessageBox.Show("关闭移门失败");
}
// boxBean.CylinderMove(null, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
}
private void btnDoorStop_Click(object sender, EventArgs e)
{
boxBean.DoorBean.Stop();
}
} }
} }
...@@ -132,6 +132,7 @@ namespace OnlineStore.ACPackingStore ...@@ -132,6 +132,7 @@ namespace OnlineStore.ACPackingStore
IOManager.instance.CloseAllConnection(); IOManager.instance.CloseAllConnection();
HumitureController.CloseAllPort(); HumitureController.CloseAllPort();
ACServerManager.CloseAllPort(); ACServerManager.CloseAllPort();
//this.Close(); //this.Close();
System.Environment.Exit(System.Environment.ExitCode); System.Environment.Exit(System.Environment.ExitCode);
} }
......
...@@ -112,7 +112,7 @@ namespace OnlineStore.ACPackingStore ...@@ -112,7 +112,7 @@ namespace OnlineStore.ACPackingStore
static void LogUnhandledException(object exceptionobj) static void LogUnhandledException(object exceptionobj)
{ {
//这里可以进一步地写日志 //这里可以进一步地写日志
LOGGER.Error(exceptionobj.ToString()); LOGGER.Error("LogUnhandledException:"+exceptionobj.ToString());
} }
} }
} }
...@@ -45,3 +45,7 @@ ...@@ -45,3 +45,7 @@
升降轴低点P101 升降轴低点P101
升降轴高点P102 升降轴高点P102
进出轴位置P101 进出轴位置P101
20191220移门操作修改:移门到位后需要马上关闭DO.
扫码入库逻辑修改,先去扫码库位点,放下料盘后扫码,扫码后再把料盘拿走。
\ No newline at end of file \ No newline at end of file
...@@ -18,7 +18,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -18,7 +18,8 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public partial class AC_BOX_Bean : KTK_Store public partial class AC_BOX_Bean : KTK_Store
{ {
private static bool IsIntSlvBlock = false; public EnteryDoorBean DoorBean = null;
private bool IsIntSlvBlock = false;
public AutoInoutInfo AutoInout = new AutoInoutInfo(); public AutoInoutInfo AutoInout = new AutoInoutInfo();
public string CID = ""; public string CID = "";
public AC_BOX_Config Config; public AC_BOX_Config Config;
...@@ -53,13 +54,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -53,13 +54,13 @@ namespace OnlineStore.DeviceLibrary
//添加调试 //添加调试
IsDebug = config.IsInDebug.Equals(1); IsDebug = config.IsInDebug.Equals(1);
Name = ("料仓BOX_" + config.DeviceID + " ").ToUpper(); Name = ("料仓BOX_" + config.DeviceID + " ").ToUpper();
this.DeviceID = config.DeviceID; this.DeviceID = config.DeviceID;
this.Config = config; this.Config = config;
DoorBean = new EnteryDoorBean(DeviceID);
//温湿度 //温湿度
humBean = new HumitureBean(config.Humiture_Port, Name); humBean = new HumitureBean(config.Humiture_Port, Name);
humBean.Init(); // humBean.Init();
moveAxisList = new List<ConfigMoveAxis>(); moveAxisList = new List<ConfigMoveAxis>();
MoveAxisConfig(); MoveAxisConfig();
List<ACBoxPosition> positionList = CSVPositionReader<ACBoxPosition>.getPositionList(); List<ACBoxPosition> positionList = CSVPositionReader<ACBoxPosition>.getPositionList();
...@@ -162,8 +163,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -162,8 +163,8 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.HomeMoving; storeRunStatus = StoreRunStatus.HomeMoving;
storeStatus = StoreStatus.ResetMove; storeStatus = StoreStatus.ResetMove;
//启动温湿度服务器 //启动温湿度服务器
HumitureController.Init(Config.Humiture_Port); HumitureController.Init(Config.Humiture_Port);
ReturnHome(); ReturnHome();
StartTime = DateTime.Now; StartTime = DateTime.Now;
mainTimer.Enabled = true; mainTimer.Enabled = true;
...@@ -254,14 +255,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -254,14 +255,15 @@ namespace OnlineStore.DeviceLibrary
isInSuddenDown = false; isInSuddenDown = false;
isNoAirCheck = false; isNoAirCheck = false;
alarmType = StoreAlarmType.None; alarmType = StoreAlarmType.None;
DoorBean.Stop();
//开始复位动作 //开始复位动作
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H01_DoorClose); MoveInfo.NextMoveStep(StoreMoveStep.BOX_H01_DoorClose);
LogInfo(MoveInfo.MoveType + ": 线体停止,入口移门关闭,NG升降门下降"); LogInfo(MoveInfo.MoveType + ": 线体停止,入口移门关闭,NG升降门下降");
IOMove(IO_Type.Line_BackRun, IO_VALUE.LOW); IOMove(IO_Type.Line_BackRun, IO_VALUE.LOW);
IOMove(IO_Type.Line_Run, IO_VALUE.LOW); IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_Type.NGDoowCylinder_Up, IO_Type.NGDoorCylinder_Down); CylinderMove(MoveInfo, IO_Type.NGDoowCylinder_Up, IO_Type.NGDoorCylinder_Down);
CylinderMove(null, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close); //CylinderMove(null, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
} }
/// <summary> /// <summary>
...@@ -450,11 +452,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -450,11 +452,6 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Wait; storeRunStatus = StoreRunStatus.Wait;
mainTimer.Enabled = false; mainTimer.Enabled = false;
TimeSpan span = DateTime.Now - StartTime; TimeSpan span = DateTime.Now - StartTime;
//LineConnect.StopConnect();
// IOManager.instance.CloseAllDO();
LogInfo(",停止运行,总运行时间:" + span.ToString()); LogInfo(",停止运行,总运行时间:" + span.ToString());
} }
...@@ -786,6 +783,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -786,6 +783,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public override void StopMove() public override void StopMove()
{ {
DoorBean.Stop();
IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW); IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
MoveInfo.EndMove(); MoveInfo.EndMove();
IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW); IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
......
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class EnteryDoorBean
{
public bool IsRun = false;
private string LastMoveDO = "";
private string LastCheckDI = "";
private int subType = 0;
internal DateTime LastEndTime = DateTime.Now;
public EnteryDoorBean(int subType)
{
this.subType = subType;
}
public void Stop()
{
if (IsRun)
{
IsRun = false;
}
}
private bool Start(string moveDO, string checkDI, int timeOutMS = 30000)
{
if (IsRun)
{
return false;
}
IsRun = true;
Task.Factory.StartNew(delegate
{
WriteAndWait(moveDO, checkDI, timeOutMS);
});
return true;
}
private string WriteAndWait(string moveDO, string checkDI, int timeOutMS = 30000)
{
LastMoveDO = moveDO;
LastCheckDI = checkDI;
LogUtil.debug("写入信号:" + moveDO + ",等待信号:" + checkDI + "");
IOManager.IOMove(moveDO, IO_VALUE.HIGH, subType);
Thread.Sleep(50);
IsRun = true;
DateTime startTime = DateTime.Now;
string result = "";
bool isStop = false;
while (true)
{
Thread.Sleep(50);
TimeSpan span = DateTime.Now - startTime;
if (!IsRun)
{
isStop = true;
result = "手动停止";
}
else if (span.TotalMilliseconds > timeOutMS)
{
isStop = true;
result = "转动超时";
}
//判断Buzy及位置是否结束
else if (IOManager.IOValue(checkDI, subType).Equals(IO_VALUE.HIGH))
{
isStop = true;
}
if (isStop)
{
if (result.Equals(""))
{
LogUtil.debug("停止运动:" + result + " " + moveDO);
}
else
{
LogUtil.info("[" + moveDO + "] [" + checkDI + "] 停止运动:" + result + " " + moveDO);
}
LastEndTime = DateTime.Now;
IOManager.IOMove(moveDO, IO_VALUE.LOW, subType);
IsRun = false;
return result;
}
}
}
public bool StartOpen(StoreMoveInfo moveInfo)
{
return false;
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Open, IO_VALUE.HIGH));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Close, IO_VALUE.LOW));
}
return Start(IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Open);
}
public bool StartClose(StoreMoveInfo moveInfo)
{
return false;
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Close, IO_VALUE.HIGH));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Open, IO_VALUE.LOW));
}
return Start(IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Close);
}
}
}
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="ACPackingStore\AC_BOX_Bean.cs" /> <Compile Include="ACPackingStore\AC_BOX_Bean.cs" />
<Compile Include="ACPackingStore\AC_BOX_Bean_Partial.cs" /> <Compile Include="ACPackingStore\AC_BOX_Bean_Partial.cs" />
<Compile Include="ACPackingStore\EnteryDoorBean.cs" />
<Compile Include="ACPackingStore\HumitureBean.cs" /> <Compile Include="ACPackingStore\HumitureBean.cs" />
<Compile Include="ACPackingStore\PackingStoreBean.cs" /> <Compile Include="ACPackingStore\PackingStoreBean.cs" />
<Compile Include="ACPackingStore\StoreManager.cs" /> <Compile Include="ACPackingStore\StoreManager.cs" />
......
...@@ -291,67 +291,104 @@ namespace OnlineStore.DeviceLibrary ...@@ -291,67 +291,104 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
BI_16_ComAxisDownMove = 3016, BI_16_ComAxisDownMove = 3016,
/// <summary> /// <summary>
/// 料架取料:记录压紧高度,叉子后退到扫码点 /// 料架取料:记录压紧高度,叉子后退到P1
/// </summary> /// </summary>
BI_17_InoutBack = 3017, BI_17_InoutBack = 3017,
//TODO 后退到待机点,然后去扫码点,放下料盘,扫码,扫码后再拿起料盘
/// <summary>
/// 扫码:升降轴移动到P2,旋转轴移动到P1
/// </summary>
BI_21_ToScanPosition = 3021,
/// <summary>
/// 扫码:进出轴到P2
/// </summary>
BI_22_InOutToP2,
/// <summary>
/// 扫码:升降轴缓慢下降到P1,压紧轴返回压紧前点
/// </summary>
BI_23_PutTrayDown,
/// <summary>
/// 扫码:进出轴返回待机点
/// </summary>
BI_24_InOutToP1,
/// <summary>
/// 扫码:记录宽度,开始扫码
/// </summary>
BI_25_ScanCode,
/// <summary> /// <summary>
/// 料架取料:记录宽度,开始扫码 /// 扫码:扫码成功,从服务器获取库位号,设置位置参数
/// </summary> /// </summary>
BI_18_ScanCode = 3018, BI_26_GetPosId,
/// <summary> /// <summary>
/// 料架取料:扫码成功,从服务器获取库位号 /// 扫码:获取库位号成功,进出轴到P2
/// </summary> /// </summary>
BI_19_GetPosId = 3019, BI_27_InoutToP2,
/// <summary>
/// 扫码:升降轴到P1,压紧轴压紧
/// </summary>
BI_28_GetScanPTray,
/// <summary>
/// 扫码:进出轴返回
/// </summary>
BI_29_InoutBackP1,
/// <summary> /// <summary>
/// 料架取料: 获取库位号完成,设置位置参数,开始入库 /// 料架取料: 获取库位号完成,设置位置参数, 准备入库
/// </summary> /// </summary>
BI_20_SetInstoreParam= 3020, BI_30_SetInstoreParam = 3030,
/// <summary> /// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点) /// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary> /// </summary>
BI_21_MoveToBag = 3021, BI_51_MoveToBag = 3051,
/// <summary> /// <summary>
/// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点) /// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
/// </summary> /// </summary>
BI_22_DeviceToBag = 3022, BI_52_DeviceToBag = 3052,
/// <summary> /// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点) /// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
/// </summary> /// </summary>
BI_23_PutWareToBag = 3023, BI_53_PutWareToBag = 3053,
/// <summary> /// <summary>
/// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点) /// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
/// </summary> /// </summary>
BI_24_DeviceBackFromBag = 3024, BI_54_DeviceBackFromBag = 3054,
/// <summary> /// <summary>
/// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始 /// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
/// </summary> /// </summary>
BI_25_GoBack = 3025, BI_55_GoBack = 3055,
/// <summary> /// <summary>
/// 送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口 /// 送出料盘:扫码或获取库位失败,升降轴移动到NG料门口上端,旋转轴移动到NG料门口
/// </summary> /// </summary>
BI_31_ToNGDoor=3031, BI_71_ToNGDoor=3071,
/// <summary> /// <summary>
/// 送出料盘:NG料口升降门上升 /// 送出料盘:NG料口升降门上升
/// </summary> /// </summary>
BI_32_NGDoorUp = 3032, BI_72_NGDoorUp = 3072,
/// <summary> /// <summary>
/// 送出料盘:进出轴前进到NG料门口位置 /// 送出料盘:进出轴前进到NG料门口位置
/// </summary> /// </summary>
BI_33_InoutToNGDoor = 3033, BI_73_InoutToNGDoor = 3073,
/// <summary> /// <summary>
/// 送出料盘:升降轴缓慢下降,放下料盘 /// 送出料盘:升降轴缓慢下降,放下料盘
/// </summary> /// </summary>
BI_34_UpdownDown= 3034, BI_74_UpdownDown= 3074,
/// <summary> /// <summary>
/// 送出料盘:叉子后退到P1 /// 送出料盘:叉子后退到P1
/// </summary> /// </summary>
BI_35_InoutToP1 = 3035, BI_75_InoutToP1 = 3075,
/// <summary> /// <summary>
/// 送出料盘:关门NG料门,送出料盘结束 /// 送出料盘:关门NG料门,送出料盘结束
/// </summary> /// </summary>
BI_36_NGDoorDown = 3036, BI_76_NGDoorDown = 3076,
#endregion #endregion
#region 把料架送出步骤 4000开始 #region 把料架送出步骤 4000开始
......
...@@ -37,6 +37,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -37,6 +37,12 @@ namespace OnlineStore.DeviceLibrary
/// =true表示满足一个等待条件,就可以完成此步骤的等待 /// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary> /// </summary>
public bool OneWaitCanEndStep = false; public bool OneWaitCanEndStep = false;
public string SLog
{
get { return " " + MoveStep + " "; }
}
/// <summary> /// <summary>
/// 操作类型 /// 操作类型
......
...@@ -249,7 +249,7 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -249,7 +249,7 @@ namespace OnlineStore.LoadCSVLibrary
public int UpDownAxis_P11 { get; set; } public int UpDownAxis_P11 { get; set; }
/// <summary> /// <summary>
/// PRO 升降轴(轴2)P11-NG放料低点 UpDownAxis_P11 403000 /// PRO 升降轴(轴2)P12-NG放料高点 UpDownAxis_P12 403000
/// </summary> /// </summary>
[ConfigProAttribute("UpDownAxis_P12")] [ConfigProAttribute("UpDownAxis_P12")]
public int UpDownAxis_P12 { get; set; } public int UpDownAxis_P12 { get; set; }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!