Commit 80239c85 张东亮

入库到库位失败,重新放下

1 个父辈 ef130e32
...@@ -302,7 +302,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -302,7 +302,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_21_ToScanPosition); MoveInfo.NextMoveStep(StoreMoveStep.BI_21_ToScanPosition);
InOutStoreLog("扫码,升降轴到P2,旋转轴到P1"); InOutStoreLog($"扫码,升降轴到P2[{moveP.UpDown_P2}],旋转轴到P1[{moveP.Middle_P1}]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
} }
...@@ -310,21 +310,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -310,21 +310,21 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_21_ToScanPosition)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_21_ToScanPosition))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_22_InOutToP2); MoveInfo.NextMoveStep(StoreMoveStep.BI_22_InOutToP2);
InOutStoreLog("扫码,进出轴到P2"); InOutStoreLog($"扫码,进出轴到P2[{moveP.InOut_P2}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_22_InOutToP2)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_22_InOutToP2))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_23_PutTrayDown); MoveInfo.NextMoveStep(StoreMoveStep.BI_23_PutTrayDown);
InOutStoreLog("扫码,升降轴到扫码低点P1,压紧轴到最大压紧前点P3"); InOutStoreLog($"扫码,升降轴到扫码低点P1[{moveP.UpDown_P1}],压紧轴到最大压紧前点P3[{Config.CompAxis_Max_P3}]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P2_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Comp_Axis, Config.CompAxis_Max_P3, Config.CompAxis_P3_Speed); ACAxisMove(Config.Comp_Axis, Config.CompAxis_Max_P3, Config.CompAxis_P3_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_23_PutTrayDown)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_23_PutTrayDown))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_24_InOutToP1); MoveInfo.NextMoveStep(StoreMoveStep.BI_24_InOutToP1);
InOutStoreLog("扫码,进出轴返回待机点P1"); InOutStoreLog($"扫码,进出轴返回待机点P1[{moveP.InOut_P1}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.CompAxis_P1_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.CompAxis_P1_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_24_InOutToP1)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_24_InOutToP1))
...@@ -376,21 +376,21 @@ namespace OnlineStore.DeviceLibrary ...@@ -376,21 +376,21 @@ namespace OnlineStore.DeviceLibrary
//else //else
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_27_InoutToP2); MoveInfo.NextMoveStep(StoreMoveStep.BI_27_InoutToP2);
InOutStoreLog("扫码,进出轴到P2"); InOutStoreLog($"扫码,进出轴到P2[{moveP.InOut_P2}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
} }
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_27_InoutToP2)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_27_InoutToP2))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_28_GetScanPTray); MoveInfo.NextMoveStep(StoreMoveStep.BI_28_GetScanPTray);
InOutStoreLog("扫码,升降轴到扫码高P2,压紧轴到压紧点P2"); InOutStoreLog($"扫码,升降轴到扫码高P2[{moveP.UpDown_P2}],压紧轴到压紧点P2[{moveP.ComPress_P2}]");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P2, Config.CompAxis_P2_Speed); ACAxisMove(Config.Comp_Axis, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_28_GetScanPTray)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_28_GetScanPTray))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_29_InoutBackP1); MoveInfo.NextMoveStep(StoreMoveStep.BI_29_InoutBackP1);
InOutStoreLog("扫码,进出轴返回"); InOutStoreLog($"扫码,进出轴返回P1[{moveP.InOut_P1}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_29_InoutBackP1)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_29_InoutBackP1))
...@@ -436,13 +436,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -436,13 +436,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_51_MoveToBag)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_51_MoveToBag))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_52_DeviceToBag); MoveInfo.NextMoveStep(StoreMoveStep.BI_52_DeviceToBag);
InOutStoreLog("叉子进入库位中,进出轴到库位P3"); InOutStoreLog($"叉子进入库位中,进出轴到库位P3[{moveP.InOut_P3}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_52_DeviceToBag)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_52_DeviceToBag))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_53_PutWareToBag); MoveInfo.NextMoveStep(StoreMoveStep.BI_53_PutWareToBag);
InOutStoreLog("放下物品,升降轴到库位缓冲点P4,压紧轴到P3"); InOutStoreLog($"放下物品,升降轴到库位缓冲点P4[{moveP.UpDown_P4}],压紧轴到P3[{moveP.ComPress_P3}]");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态) // 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : ""; string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
...@@ -457,16 +457,26 @@ namespace OnlineStore.DeviceLibrary ...@@ -457,16 +457,26 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_53_PutWareToBag)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_53_PutWareToBag))
{ {
if(ACAxisIsInPositon(Config.Comp_Axis, moveP.ComPress_P3) && ACAxisIsInPositon(Config.UpDown_Axis, moveP.UpDown_P4))
{
MoveInfo.NextMoveStep(StoreMoveStep.BI_54_DeviceBackFromBag); MoveInfo.NextMoveStep(StoreMoveStep.BI_54_DeviceBackFromBag);
InOutStoreLog("叉子从库位中返回,进出轴到P1"); InOutStoreLog($"叉子从库位中返回,进出轴到P1[{moveP.InOut_P1}]");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed); ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
} }
else
{
MoveInfo.NextMoveStep(StoreMoveStep.BI_53_PutWareToBag);
InOutStoreLog($"放下物品失败,重新放下,升降轴到库位缓冲点P4[{moveP.UpDown_P4}],压紧轴到P3[{moveP.ComPress_P3}]");
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
}
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_54_DeviceBackFromBag)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_54_DeviceBackFromBag))
{ {
if (MoveInfo.SingleInstore) if (MoveInfo.SingleInstore)
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_55_GoBack); MoveInfo.NextMoveStep(StoreMoveStep.BI_55_GoBack);
InOutStoreLog("返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始"); InOutStoreLog($"返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始");
ACAxisMove(Config.Comp_Axis, moveP.ComPress_P1, Config.CompAxis_P1_Speed); ACAxisMove(Config.Comp_Axis, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
......
using Asa; using Asa;
using log4net; using log4net;
using log4net.Repository.Hierarchy;
using log4net.Util;
using OnlineStore.Common; using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary; using OnlineStore.LoadCSVLibrary;
using System; using System;
...@@ -7,6 +9,7 @@ using System.Collections.Generic; ...@@ -7,6 +9,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
...@@ -221,14 +224,131 @@ namespace OnlineStore.DeviceLibrary ...@@ -221,14 +224,131 @@ namespace OnlineStore.DeviceLibrary
} }
#region 灯光处理 #region 灯光处理
//private void LedProcess(object sender, ElapsedEventArgs e)
//{
// try
// {
// DateTime time = DateTime.Now;
// bool isNeedAlarmLed = false;
// bool isInOut = false;
// StoreRunStatus runs = StoreRunStatus.Wait;
// foreach (AC_BOX_Bean box in BoxMap.Values)
// {
// if (!box.alarmType.Equals(StoreAlarmType.None))
// {
// isNeedAlarmLed = true;
// }
// if (box.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || box.MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
// {
// isInOut = true;
// }
// if (box.storeRunStatus > runs)
// {
// runs = box.storeRunStatus;
// }
// }
// //黄灯
// if (runs.Equals(StoreRunStatus.HomeMoving) || runs.Equals(StoreRunStatus.Reset))
// {
// //开机执行中时黄灯闪烁
// if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// else
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// }
// }
// else if (isInOut)
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// }
// else
// {
// if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// }
// if (alarmType.Equals(StoreAlarmType.None).Equals(false) || isNoAirCheck || isInSuddenDown)
// {
// isNeedAlarmLed = true;
// }
// //忙碌中,判断是否有移栽在出入库执行 绿灯灭
// if (isInOut)
// {
// IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// else
// {
// IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
// }
// //报警中 ,红灯闪烁
// if (isNeedAlarmLed)
// {
// if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.LOW))
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
// }
// else
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
// else if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
// catch (Exception ex)
// {
// LogUtil.error(Name + "灯处理定时器出错:" + ex.ToString());
// }
// Thread.Sleep(5);
//}
bool TempOrHumidityIsAlarm = false;
DateTime TempAlarmTime = DateTime.Now;
bool isPro = false;
private void LedProcess(object sender, ElapsedEventArgs e) private void LedProcess(object sender, ElapsedEventArgs e)
{ {
if (isPro)
{
return;
}
isInPro = true;
try try
{ {
// 机器状态 顶灯显示
// 绿 黄 红
//机器复位中 闪 灭 灭
//机器待机中 亮 灭 灭
//机器出入库中 闪 闪 灭
//温湿度超限报警中 亮 闪 灭
//温湿度超限报警中超过30分钟 亮 闪 闪
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
//报警时只需要亮红灯
DateTime time = DateTime.Now; DateTime time = DateTime.Now;
bool isNeedAlarmLed = false; bool isTemp30M = false;
if (TempOrHumidityIsAlarm)
{
TimeSpan span = DateTime.Now - TempAlarmTime;
if (span.Minutes > 30)
{
isTemp30M = true;
}
}
bool isInOut = false; bool isInOut = false;
StoreRunStatus runs = StoreRunStatus.Wait; bool isNeedAlarmLed = false;
StoreRunStatus runs = storeRunStatus;
foreach (AC_BOX_Bean box in BoxMap.Values) foreach (AC_BOX_Bean box in BoxMap.Values)
{ {
...@@ -244,71 +364,78 @@ namespace OnlineStore.DeviceLibrary ...@@ -244,71 +364,78 @@ namespace OnlineStore.DeviceLibrary
{ {
runs = box.storeRunStatus; runs = box.storeRunStatus;
} }
if (isNeedAlarmLed || isInOut)
break;
} }
// //报警
if (runs.Equals(StoreRunStatus.HomeMoving) || runs.Equals(StoreRunStatus.Reset)) if (!alarmType.Equals(StoreAlarmType.None) || isTemp30M)
{ {
//开机执行中时黄灯闪烁 isNeedAlarmLed = true;
if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH)) }
if (isNeedAlarmLed && IOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.LOW))
{ {
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW); IOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
} }
else else
{ {
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH); if (IOValue(IO_Type.Alarm_HddLed).Equals(IO_VALUE.HIGH))
}
}
else if (isInOut)
{ {
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH); IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
} }
else }
//报警时绿灯和黄灯灭
if (isNeedAlarmLed)
{ {
if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH)) if (IOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
{ {
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW); IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
} }
if (alarmType.Equals(StoreAlarmType.None).Equals(false) || isNoAirCheck || isInSuddenDown) if (IOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{ {
isNeedAlarmLed = true; IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
}
return;
} }
//忙碌中,判断是否有移栽在出入库执行 绿灯灭 //绿灯闪
if (isInOut) if ((isInOut || runs.Equals(StoreRunStatus.HomeMoving) || runs.Equals(StoreRunStatus.Reset))
&& IOValue(IO_Type.AutoRun_HddLed).Equals(IO_VALUE.HIGH))
{ {
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW); IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
} }
else else
{ {
//绿灯亮
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH); IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
} }
//黄灯
//报警中 ,红灯闪烁 if (isInOut || TempOrHumidityIsAlarm || isTemp30M)
if (isNeedAlarmLed)
{ {
if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.LOW)) if (IOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{ {
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH); IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
} }
else else
{ {
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW); IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
} }
} }
else if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.HIGH)) else
{ {
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW); if (IOValue(IO_Type.RunSign_HddLed).Equals(IO_VALUE.HIGH))
{
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
}
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error(Name + "灯处理定时器出错:" + ex.ToString()); Common.LogUtil.error(Name + "灯处理定时器出错:", ex);
}
finally
{
isInPro = false;
} }
Thread.Sleep(5);
} }
private bool IsDoValue(string ioType, IO_VALUE ioValue) private bool IsDoValue(string ioType, IO_VALUE ioValue)
......
...@@ -240,7 +240,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -240,7 +240,7 @@ namespace OnlineStore.DeviceLibrary
p.UpDown_P5 = position.UpdownAxis_OH_P5; p.UpDown_P5 = position.UpdownAxis_OH_P5;
p.UpDown_P6 = position.UpdownAxis_OL_P6; p.UpDown_P6 = position.UpdownAxis_OL_P6;
param.MoveP = p; param.MoveP = p;
LogUtil.info($"加载[{param.PosID}]位置信息:{JsonHelper.SerializeObject(p)}");
return true; return true;
} }
......
...@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0, ...@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
DI,L侧门禁,DoorLimit,3,PRO_AOI_IP_1,0,料盘检测1(进料口),X04,DI-04,0, DI,L侧门禁,DoorLimit,3,PRO_AOI_IP_1,0,料盘检测1(进料口),X04,DI-04,0,
DI,L侧仓位调试,PositionDebug,5,PRO_AOI_IP_1,0,L侧仓位调试,X06,DI-06,0, DI,L侧仓位调试,PositionDebug,5,PRO_AOI_IP_1,0,L侧仓位调试,X06,DI-06,0,
DI,L侧线体空料架检测,EmptyShelf_Check,7,PRO_AOI_IP_1,0,线体空料架检测1,X08,DI-08,0, DI,L侧线体空料架检测,EmptyShelf_Check,7,PRO_AOI_IP_1,0,线体空料架检测1,X08,DI-08,0,
DO,自动指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,自动指示灯,Y01,DO-01,0,
DO,故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y02,DO-02,0,
DO,待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y03,DO-03,0,
DO,报警蜂鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,报警蜂鸣器,Y04,DO-04,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0, DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0, DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
,,,,,,,,,, ,,,,,,,,,,
......
...@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0, ...@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
DI,R侧门禁,DoorLimit,4,PRO_AOI_IP_1,0,料盘检测2(料叉),X05,DI-05,0, DI,R侧门禁,DoorLimit,4,PRO_AOI_IP_1,0,料盘检测2(料叉),X05,DI-05,0,
DI,R侧仓位调试,PositionDebug,6,PRO_AOI_IP_1,0,R侧仓位调试,X07,DI-07,0, DI,R侧仓位调试,PositionDebug,6,PRO_AOI_IP_1,0,R侧仓位调试,X07,DI-07,0,
DI,R侧线体空料架检测,EmptyShelf_Check,8,PRO_AOI_IP_1,0,线体空料架检测2,X09,DI-09,0, DI,R侧线体空料架检测,EmptyShelf_Check,8,PRO_AOI_IP_1,0,线体空料架检测2,X09,DI-09,0,
DO,自动指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,自动指示灯,Y01,DO-01,0,
DO,故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y02,DO-02,0,
DO,待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y03,DO-03,0,
DO,报警蜂鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,报警蜂鸣器,Y04,DO-04,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0, DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0, DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
,,,,,,,,,, ,,,,,,,,,,
......
...@@ -125,7 +125,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -125,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
protected object isInPro = new object(); protected object isInPro = new object();
protected virtual void BusyMoveProcess() protected virtual void BusyMoveProcess()
{ {
if(Monitor.TryEnter(isInPro)) if (Monitor.TryEnter(isInPro))
{ {
try try
{ {
...@@ -156,7 +156,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -156,7 +156,8 @@ namespace OnlineStore.DeviceLibrary
catch (Exception ex) catch (Exception ex)
{ {
LogUtil.error("BusyMoveProcess出错:" + ex.ToString()); LogUtil.error("BusyMoveProcess出错:" + ex.ToString());
}finally }
finally
{ {
Monitor.Exit(isInPro); Monitor.Exit(isInPro);
} }
...@@ -252,7 +253,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -252,7 +253,18 @@ namespace OnlineStore.DeviceLibrary
moveAxis.TargetPosition = targetPosition; moveAxis.TargetPosition = targetPosition;
ACServerManager.AbsMove(moveAxis.DeviceName, moveAxis.GetAxisValue(), targetPosition, targetSpeed); ACServerManager.AbsMove(moveAxis.DeviceName, moveAxis.GetAxisValue(), targetPosition, targetSpeed);
} }
protected bool ACAxisIsInPositon(ConfigMoveAxis moveAxis, int targetPosition)
{
string deviceName = moveAxis.DeviceName;
short axisNo = moveAxis.GetAxisValue();
int outCount = ACServerManager.GetActualtPosition(deviceName, axisNo);
int errorCount = Math.Abs(outCount - targetPosition);
if (errorCount <= moveAxis.CanErrorCountMax)
{
return true;
}
return false;
}
/// <summary> /// <summary>
/// 判断AC伺服电机轴是否运动完成 /// 判断AC伺服电机轴是否运动完成
/// </summary> /// </summary>
...@@ -269,6 +281,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -269,6 +281,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (errorCount <= moveAxis.CanErrorCountMax) if (errorCount <= moveAxis.CanErrorCountMax)
{ {
LogUtil.info($"{Name} {moveAxis.DisplayStr} 到达目标位置 {targetPosition}");
return true; return true;
} }
//判断是否需要重新运动 //判断是否需要重新运动
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!