Commit 6a51b95b LN

1.出库压紧逻辑修改。2.点击启动键自动启动。3.httpHelper修改

1 个父辈 1cf23ae2
此文件的差异太大,无法显示。
......@@ -1079,7 +1079,7 @@ namespace OnlineStore.ACPackingStore
/// <param name="e"></param>
private void btnClearcurState_Click(object sender, EventArgs e)
{
if (BoxBean.MoveInfo.MoveStep.Equals(StoreMoveStep.SO_07_CheckComSig))
if (BoxBean.MoveInfo.MoveStep.Equals(StoreMoveStep.SO_09_CheckComSig))
{
LogUtil.info("手动忽略料叉信号,BoxBean.MoveInfo.EndStepWait(); 重置BoxBean.IsIgnoreComSig = true ");
BoxBean.IsIgnoreComSig = true;
......
......@@ -18,8 +18,7 @@ namespace OnlineStore.Common
{
public class HttpHelper
{
// public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static string Post(string url, string paramData)
public static string PostAndWait(string url, string paramData)
{
string postRes = "";
DateTime startTime = DateTime.Now;
......@@ -57,48 +56,16 @@ namespace OnlineStore.Common
postTask.Wait();
return postRes;
}
//public static bool PingURLIP(string url, int ms=100)
//{
// string[] urlArray = url.Split('/');
// if (urlArray.Length > 3)
// {
// string ip = urlArray[2];
// Ping pingSender = new Ping();
// PingReply reply = pingSender.Send(ip, ms);//第一个参数为ip地址,第二个参数为ping的时间
// if (reply.Status == IPStatus.Success)
// {
// //通
// return true;
// }
// else
// {
// //不通
// return false;
// }
// }
// return true;
//}
/// <summary>
///
/// </summary>
/// <param name="url"></param>
/// <param name="operation"></param>
/// <param name="simulate">是否模拟服务器返回结果</param>
/// <returns></returns>
public static Operation Post(string url, Operation operation, bool simulate)
public static string Post(string url, string paramData)
{
bool isTimeOut = false;
return Post(url, paramData, Encoding.UTF8, out isTimeOut);
}
public static Operation Post(string url, Operation operation, bool simulate=false)
{
try
{
////如果Op=0或者Op=5,先拼Ip,不通不发送
//if (operation.op < 0 || operation.op.Equals(5))
//{
// if (PingURLIP(url, 100).Equals(false))
// {
// return null;
// }
//}
if (simulate)
{//模拟服务器返回
......@@ -150,10 +117,6 @@ namespace OnlineStore.Common
public static string LastServerMsg = "";
public static string Post(string url, string paramData, Encoding encoding, out bool isTimeOut)
{
//if (PingURLIP(url, 100).Equals(false))
//{
// return null;
//}
isTimeOut = false;
if (isLog == 1)
{
......
......@@ -607,30 +607,31 @@ namespace OnlineStore.DeviceLibrary
public void IoCheckProcess()
{
DateTime time = DateTime.Now;
if (storeRunStatus.Equals(StoreRunStatus.Wait))
{
//取新的Io状态
IO_VALUE autoSingle = IOValue(IO_Type.Reset_BTN);
if (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1))
{
if (autoSingle.Equals(IO_VALUE.HIGH) && lastAutoRun.Equals(IO_VALUE.LOW))
{
//没有启动时收到复位按钮,相当于启动按钮
LogInfo("没有启动时收到复位按钮,相当于启动按钮,开始调用启动方法!");
bool result = StartRun();
if (result.Equals(false))
{
LogUtil.error(Name + "料仓启动失败,继续等待下次启动!");
mainTimer.Enabled = true;
}
}
lastAutoRun = autoSingle;
return;
}
lastAutoRun = autoSingle;
}
//判断急停
else if (storeRunStatus >= StoreRunStatus.HomeMoving)
//if (storeRunStatus.Equals(StoreRunStatus.Wait))
//{
// //取新的Io状态
// IO_VALUE autoSingle = IOValue(IO_Type.Reset_BTN);
// if (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1))
// {
// if (autoSingle.Equals(IO_VALUE.HIGH) && lastAutoRun.Equals(IO_VALUE.LOW))
// {
// //没有启动时收到复位按钮,相当于启动按钮
// LogInfo("没有启动时收到复位按钮,相当于启动按钮,开始调用启动方法!");
// bool result = StartRun();
// if (result.Equals(false))
// {
// LogUtil.error(Name + "料仓启动失败,继续等待下次启动!");
// mainTimer.Enabled = true;
// }
// }
// lastAutoRun = autoSingle;
// return;
// }
// lastAutoRun = autoSingle;
//}
////判断急停
//else
if (storeRunStatus >= StoreRunStatus.HomeMoving)
{
////取新的Io状态
//IO_VALUE suddenBtn = IOValue(IO_Type.SuddenStop_BTN);
......
......@@ -77,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
{
ConfigIO io = Config.getWaitIO(wait.IoType);
WarnMsg = Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.MoveStep + "] 等待(" + io.DisplayStr + "=" + wait.IoValue + ") 超时";
if (WarnMsg.Contains(IO_Type.Compress_Check) && MoveInfo.MoveStep.Equals(StoreMoveStep.SO_07_CheckComSig))
if (WarnMsg.Contains(IO_Type.Compress_Check) && MoveInfo.MoveStep.Equals(StoreMoveStep.SO_09_CheckComSig))
{
CompressSigTimeOut = true;
WarnMsg += "出库时料叉未检测到信号!";
......@@ -190,7 +190,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (span.TotalSeconds > MoveInfo.TimeOutSeconds)
{
if (NotOkMsg.Contains(IO_Type.Compress_Check) && MoveInfo.MoveStep.Equals(StoreMoveStep.SO_07_CheckComSig))
if (NotOkMsg.Contains(IO_Type.Compress_Check) && MoveInfo.MoveStep.Equals(StoreMoveStep.SO_09_CheckComSig))
{
CompressSigTimeOut = true;
NotOkMsg += "出库时料叉未检测到信号!";
......@@ -389,7 +389,7 @@ namespace OnlineStore.DeviceLibrary
private void StartMoveTrayBack(string str = "料盘不属于该仓库")
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToShelfPosition);
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_ToShelfPosition);
InOutStoreLog("送出料盘 " + MoveInfo.SLog + ":" + str + ",走到料架位置,旋转轴至P101,升降轴至P102");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.MoveP.UpDown_HP102, Config.UpDownAxis_P102_Speed);
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.MoveP.Middle_P101, Config.MiddleAxis_P101_Speed);
......@@ -757,7 +757,7 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 把料盘送回料架逻辑
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_ToShelfPosition)
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_ToShelfPosition)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_11_ToShelf);
InOutStoreLog("送出料盘 " + MoveInfo.SLog + ":叉子进出料口,进出轴至P101");
......@@ -1001,13 +1001,41 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_05_GetReel);
InOutStoreLog("出库 " + MoveInfo.SLog + ": 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) ");
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_05_GetReel)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_InoutBack);
//如果检测信号亮或者当前位置大于P4,直接走相对位置
if (IOValue(IO_Type.Compress_Check).Equals(IO_VALUE.HIGH) || (moveP.ComPress_P2 >= Config.CompAxis_P4_Position))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_ComDownMove);
int currPosition = ACServerManager.GetActualtPosition(Config.Comp_Axis);
int targetP = currPosition + Config.CompAxis_Down_Position;
InOutStoreLog("出库 " + MoveInfo.SLog + ": 再向下压紧 [" + Config.CompAxis_Down_Position + "] 目标 [" + targetP + "] ");
ACAxisMove(Config.Comp_Axis, targetP, Config.CompAxis_P1_Speed);
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_StartCompress);
InOutStoreLog("出库 " + MoveInfo.SLog + ":压紧轴开始缓慢压紧到P4 :" + Config.CompAxis_P4_Position);
MoveInfo.WaitList.Add(WaitResultInfo.WaitComAxis(Config.Comp_Axis, Config.CompAxis_P4_Position, Config.CompAxis_P4_Speed));
Config.Comp_Axis.TargetPosition = Config.CompAxis_P4_Position;
ACServerManager.AbsMove(Config.Comp_Axis.DeviceName, Config.Comp_Axis.GetAxisValue(), Config.CompAxis_P4_Position, Config.CompAxis_P4_Speed);
ComAxisStartCheck();
}
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SO_06_StartCompress))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_ComDownMove);
int currPosition = ACServerManager.GetActualtPosition(Config.Comp_Axis);
int targetP = currPosition + Config.CompAxis_Down_Position;
InOutStoreLog("出库 " + MoveInfo.SLog + ": 再向下压紧 [" + Config.CompAxis_Down_Position + "] 目标 [" + targetP + "] ");
ACAxisMove(Config.Comp_Axis, targetP, Config.CompAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_ComDownMove)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_InoutBack);
InOutStoreLog("出库 " + MoveInfo.SLog + ":叉子从库位返回,进出轴至P1(待机点) ");
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
......@@ -1018,38 +1046,38 @@ namespace OnlineStore.DeviceLibrary
storeStatus = StoreStatus.OutStoreBoxEnd;
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_06_InoutBack)
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_InoutBack)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_CheckComSig);
MoveInfo.NextMoveStep(StoreMoveStep.SO_09_CheckComSig);
InOutStoreLog("出库 " + MoveInfo.SLog + ":等待料叉压紧信号 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Compress_Check, IO_VALUE.HIGH));
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_CheckComSig)
else if (MoveInfo.MoveStep == StoreMoveStep.SO_09_CheckComSig)
{
if (IOValue(IO_Type.Compress_Check).Equals(IO_VALUE.HIGH) || IsIgnoreComSig)
{
IsIgnoreComSig = false;
CompressSigTimeOut = false;
LogUtil.info("出库步骤 SO_07_CheckComSig :IsIgnoreComSig = false, CompressSigTimeOut = false");
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToShelfPosition);
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_ToShelfPosition);
InOutStoreLog("出库 " + MoveInfo.SLog + ":走到料架位置,旋转轴至P101,升降轴至P102 ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_HP102, Config.UpDownAxis_P102_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P101, Config.MiddleAxis_P101_Speed);
}
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_ToShelfPosition)
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_ToShelfPosition)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_WaitNoTray);
// MoveInfo.NextMoveStep(StoreMoveStep.SO_12_WaitNoTray);
}
//此处需要等待移栽没有工作,才能把盘放入出料口
else if (MoveInfo.MoveStep == StoreMoveStep.SO_09_LocationDown)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_WaitNoTray);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_WaitNoTray)
{
//}
////此处需要等待移栽没有工作,才能把盘放入出料口
//else if (MoveInfo.MoveStep == StoreMoveStep.SO_11_LocationDown)
//{
// MoveInfo.NextMoveStep(StoreMoveStep.SO_12_WaitNoTray);
//}
//else if (MoveInfo.MoveStep == StoreMoveStep.SO_12_WaitNoTray)
//{
MoveInfo.NextMoveStep(StoreMoveStep.SO_11_ToShelf);
InOutStoreLog("出库 " + MoveInfo.SLog + ":叉子进出料口,进出轴至P101");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P101, Config.InOutAxis_P101_Speed);
......
......@@ -184,7 +184,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_InoutBack);
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_InoutBack);
InOutStoreLog("出库 " + MoveInfo.SLog + ":叉子从库位返回,进出轴至P1(待机点) ");
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
......
......@@ -22,7 +22,8 @@ namespace OnlineStore.DeviceLibrary
public HumitureParam QueryData()
{
HumitureParam param = HumitureController.QueryData(PortName);
return param;
LastData = param;
return LastData;
}
internal void ProcessHumidityCMD(Operation resultOperation)
......@@ -71,7 +72,7 @@ namespace OnlineStore.DeviceLibrary
{
try
{
if ((DateTime.Now - preLogTime).TotalSeconds > 10)
if ((DateTime.Now - preLogTime).TotalSeconds > (8+box.DeviceID))
{
preLogTime = DateTime.Now;
//用最大的湿度判断是否需要吹气,开始吹气的值=发过来的值-4
......
......@@ -307,13 +307,38 @@ namespace OnlineStore.DeviceLibrary
return IOValue(ioType).Equals(ioValue);
}
#endregion
/// <summary>
/// 定时处理,监听信号,监听IO
/// </summary>
private IO_VALUE lastAutoRun = IO_VALUE.LOW;
protected override void timersTimer_Elapsed(object sender, ElapsedEventArgs e)
{
if (storeRunStatus.Equals(StoreRunStatus.Wait))
{
//取新的Io状态
IO_VALUE autoSingle = IOValue(IO_Type.Reset_BTN);
if (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1))
{
if (autoSingle.Equals(IO_VALUE.HIGH) && lastAutoRun.Equals(IO_VALUE.LOW))
{
//没有启动时收到复位按钮,相当于启动按钮
LogInfo("没有启动时收到复位按钮,相当于启动按钮,开始调用启动方法!");
bool result = StartRun();
if (result.Equals(false))
{
LogUtil.error(Name + "料仓启动失败,继续等待下次启动!");
mainTimer.Enabled = true;
}
}
lastAutoRun = autoSingle;
return;
}
lastAutoRun = autoSingle;
}
//判断急停
else
{
BusyMoveProcess();
}
}
public override void StopMove()
{
foreach (AC_BOX_Bean equip in this.BoxMap.Values)
......
......@@ -218,63 +218,63 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
///料仓出库,,顶升气缸下降,先检测料架
/// </summary>
SO_02_TopDown = 2001,
SO_02_TopDown ,
/// <summary>
/// 料仓出库,,所有轴运行到库位,压紧轴到压紧前点P3 ,旋转轴到库位点P2,轴2(上下) 至P5(库位出库前点)
/// </summary>
SO_03_ToPosition = 2003,
SO_03_ToPosition,
/// <summary>
/// 料仓出库,,叉子进入库位中, 进出轴到库位P3
/// </summary>
SO_04_ToPos = 2004,
SO_04_ToPos,
/// <summary>
///料仓出库,, 库位的物品放入叉子上,轴2( 上下) 至P6( 库位出料缓冲点),轴4( 压紧) 至P2(压紧点)
/// </summary>
SO_05_GetReel = 2005,
SO_05_GetReel,
/// <summary>
///料仓出库,,叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// 料仓出库,,压紧轴开始缓慢压紧
/// </summary>
SO_06_InoutBack = 2006,
SO_06_StartCompress,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// 料仓出库,,检测到料叉压紧确认信号,再次向下压紧指定的值
/// </summary>
SO_07_CheckComSig = 2007,
SO_07_ComDownMove,
/// <summary>
/// 料仓出库,走到料架位置,旋转轴至P20,升降轴至P102,
///料仓出库,,叉子从 库位返回,轴3( 叉子) 至P1( 待机点)
/// </summary>
SO_08_ToShelfPosition = 2008,
SO_08_InoutBack,
/// <summary>
/// 料仓出库,定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回(Y104-1/PCI5O1-84) (Y104-2/PCI5O1-91) (Y104-2/PCI5O1-96) 退回到位
/// 料仓出库,等待压紧信号确认
/// </summary>
SO_09_LocationDown = 2009,
SO_09_CheckComSig,
/// <summary>
/// 等待门口无料盘
/// 料仓出库,走到料架位置,旋转轴至P20,升降轴至P102,
/// </summary>
SO_10_WaitNoTray = 2010,
SO_10_ToShelfPosition,
/// <summary>
/// 料仓出库,叉子到料架,进出轴至P20
/// /// </summary>
SO_11_ToShelf = 2011,
SO_11_ToShelf,
/// <summary>
/// 料仓出库,,把物品放下,压紧轴到P1,升降轴至P20
/// </summary>
SO_12_PutReel = 2012,
SO_12_PutReel,
/// <summary>
/// 料仓出库,,叉子从出料口返回,,进出轴到P1
/// </summary>
SO_13_InoutBack = 2013,
SO_13_InoutBack,
/// <summary>
/// 料仓出库,,升降轴返回,, 轴2至P1( 待机点),顶升气缸下降
/// </summary>
SO_14_GoBack = 2044,
SO_14_GoBack,
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!