Commit 8ce0afe4 ke.sun

调试修改

1 个父辈 c2b136f3
......@@ -840,7 +840,7 @@ namespace OnlineStore.ACSingleStore
private void 料仓运转ONToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Enabled = false;
store.RunAxis();
store.RunAxis(false );
this.Enabled = true;
LogUtil.info("料仓运转ON完成");
}
......
......@@ -96,51 +96,51 @@ namespace OnlineStore.DeviceLibrary
{
LogUtil.info("开始初始化伺服【" + portName + "】【" + slvAddr + "】");
//写入block
int sleep = 10;
string slvAddrStr = string.Format(strFromat, slvAddr);
//block0=原点返回,正方向
string str0 = slvAddrStr + "104800 000408 00000420 00000000 ffff";
SendStrAndSleep(portName, str0);
SendStrAndSleep(portName, str0, sleep);
//block1=原点返回,反方向
string str1 = slvAddrStr + "104804 000408 04000420 00000000 ffff";
SendStrAndSleep(portName, str1);
SendStrAndSleep(portName, str1, sleep);
//block2=绝对位置运动
string str2 = slvAddrStr + "104808 000408 10000211EC78FFFF ffff";
SendStrAndSleep(portName, str2);
SendStrAndSleep(portName, str2, sleep);
//block3=相对位置运动
string str3 = slvAddrStr + "10480C 000408 10000111EC78FFFF ffff";
SendStrAndSleep(portName, str3);
SendStrAndSleep(portName, str3, sleep);
//block4=正方向匀速运动
string str4 = slvAddrStr + "104810 000408 10000311 00000000 ffff";
SendStrAndSleep(portName, str4);
SendStrAndSleep(portName, str4, sleep);
//block5=反方向匀速运动
string str5 = slvAddrStr + "104814 000408 14000311 00000000 ffff";
SendStrAndSleep(portName, str5);
SendStrAndSleep(portName, str5, sleep);
//block6=减速停止
string str6 = slvAddrStr + "104818 000408 00000500 00000000 ffff";
SendStrAndSleep(portName, str6);
SendStrAndSleep(portName, str6, sleep);
//block7=紧急停止
string str7 = slvAddrStr + "10481c 000408 00000510 00000000 ffff";
SendStrAndSleep(portName, str7);
SendStrAndSleep(portName, str7, sleep);
//0106460001009D12
//速度 V1 =100
string v1 = slvAddrStr + "064601 " + SpeedToStr(targetSpeed, 4) + " ffff";
SendStrAndSleep(portName, v1);
SendStrAndSleep(portName, v1, sleep);
//加速度 A1 =30
string a1 = slvAddrStr + "064611 " + SpeedToStr(addSpeed, 4) + " ffff";
SendStrAndSleep(portName, a1);
SendStrAndSleep(portName, a1, sleep);
//减速度 D1=30
string d1 = slvAddrStr + "064621 " + SpeedToStr(delSpeed, 4) + " ffff";
SendStrAndSleep(portName, d1);
SendStrAndSleep(portName, d1, sleep);
//原点返回高速 homeHighSpeed=100
SendStrAndSleep(portName, slvAddrStr + "06 4637 " + SpeedToStr(homeHighSpeed, 4) + " ffff");
SendStrAndSleep(portName, slvAddrStr + "06 4637 " + SpeedToStr(homeHighSpeed, 4) + " ffff", sleep);
//原点返回抵速 homeLowSpeed=50
SendStrAndSleep(portName, slvAddrStr + "06 4638 " + SpeedToStr(homeLowSpeed, 4) + " ffff");
SendStrAndSleep(portName, slvAddrStr + "06 4638 " + SpeedToStr(homeLowSpeed, 4) + " ffff", sleep);
//原点返回加速度=30
SendStrAndSleep(portName, slvAddrStr + "06 4639 " + SpeedToStr(homeAddSpeed, 4) + " ffff");
SendStrAndSleep(portName, slvAddrStr + "06 4639 " + SpeedToStr(homeAddSpeed, 4) + " ffff", sleep);
UpdateEEPROM(portName, slvAddr);
}
public static void UpdateEEPROM(string portName, int slvAddr)
......@@ -177,7 +177,7 @@ namespace OnlineStore.DeviceLibrary
//先更新速度
string slvAddrStr = string.Format(strFromat, slvAddr);
string v1 = slvAddrStr + "064601 " + SpeedToStr(targetSpeed, 4) + " ffff";
SendStrAndSleep(portName, v1);
SendStrAndSleep(portName, v1,SleepMSendons);
RelMove(portName, slvAddr, position);
}
......@@ -270,7 +270,7 @@ namespace OnlineStore.DeviceLibrary
//0106460001009D12
//速度 V1 =100
string v1 = slvAddrStr + "064601 " + SpeedToStr(targetSpeed, 4) + " ffff";
SendStrAndSleep(portName, v1);
SendStrAndSleep(portName, v1,SleepMSendons);
//绝对运动
AbsMove(portName, slvAddr, targetPosition);
......
......@@ -39,14 +39,14 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(100);
OnlyOpenSTB(portName,slvAddr);
}
public static void SendStrAndSleep(string portName, string str)
public static void SendStrAndSleep(string portName, string str,int sleepS)
{
byte[] data = SerialBean.StringToByte(str);
data[data.Length - 1] = 0x00;
data[data.Length - 2] = 0x00;
data = ACCMDManager.buildCheckData(data, data.Length - 2);
SendData(portName, data);
System.Threading.Thread.Sleep(SleepMSendons);
System.Threading.Thread.Sleep(sleepS);
}
public static void SendStr(string portName, string str)
{
......@@ -206,7 +206,7 @@ namespace OnlineStore.DeviceLibrary
AcSerialBean bean = GetSerialBean(portName);
if (bean == null)
{
LogUtil.info("ACServerManager SendData(string portName, byte[] data)试图写入数据:" + strSend + ",发现串口【" + portName + "】不在列表中");
LogUtil.debug("ACServerManager SendData 试图向未打开串口【" + portName + "】写入数据:" + strSend + "。");
return;
}
......@@ -244,7 +244,7 @@ namespace OnlineStore.DeviceLibrary
AcSerialBean bean = GetSerialBean(portName);
if (bean == null)
{
LogUtil.info("ACServerManager SendCommand(string portName, byte[] data, int outTime, int reviceLength) 试图写入数据:" + strSend + ",发现串口【" + portName + "】不在列表中");
LogUtil.debug("ACServerManager SendCommand 试图向未打开串口【" + portName + "】写入数据:" + strSend + "。");
}
else
{
......@@ -345,7 +345,7 @@ namespace OnlineStore.DeviceLibrary
int length = 2;
byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteCoil, addr, data, length);
SendData(portName, dataArray);
System.Threading.Thread.Sleep(1000);
System.Threading.Thread.Sleep(100);
data = "0000";
dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteCoil, addr, data, length);
SendData(portName, dataArray);
......
......@@ -43,24 +43,24 @@ PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,100,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,30,,,,,,
PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,30,,,,,,
PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,20,,,,,,
PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,40,,,,,,
PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,10,,,,,
PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,100,,,,,,
PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,30,,,,,,
PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,30,,,,,,
PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,20,,,,,,
PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,40,,,,,
PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,10,,,,,
PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,100,,,,,,
PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,30,,,,,,
PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,30,,,,,,
PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,40,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,200,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,500,,,,,,
PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,500,,,,,,
PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,5,,,,,,
PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,50,,,,,,
PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,800,,,,,
PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,200,,,,,,
PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,500,,,,,,
PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,500,,,,,,
PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,10,,,,,,
PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,50,,,,,
PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,500,,,,,
PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,200,,,,,,
PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,500,,,,,,
PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,500,,,,,,
PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,20,,,,,,
PRO,(轴三)进出轴原点高速,InoutAxis_HomeHighSpeed,60,,,,,,
PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,20,,,,,,
PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,500,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,100,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,100,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,100,,,,,,
......@@ -84,19 +84,6 @@ PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,
,,,,,,,,,
PRO,硕科步进电机(压紧轴)控制端口号,CompressAxis_PortName,COM4,,,,,,
PRO,硕科步进电机(压紧轴)控制波特率,CompressAxis_PortBaudrate,9600,,,,,,
PRO,硕科步进电机(压紧轴)控制奇偶校验,CompressAxis_PortParity,0,,,,,,
PRO,硕科步进电机(压紧轴)控制停止位,CompressAxis_StopBits,1,,,,,,
PRO,硕科步进电机(压紧轴)控制初速度,CompressAxis_StartSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制最大速度,CompressAxis_MaxSpeed,200000,,,,,,
PRO,硕科步进电机(压紧轴)控制末速度,CompressAxis_EndSpeed,70000,,,,,,
PRO,硕科步进电机(压紧轴)控制加速度,CompressAxis_AddSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制减速度,CompressAxis_DelSpeed,50000,,,,,,
PRO,硕科步进电机(压紧轴)控制归零速度(原点返回速度),CompressAxis_HomeSpeed,50000,,,,,,
PRO,硕科步进电机轴地址(压紧轴),CompressAxis_Slv,1,,,,,,
,,,,,,,,,
PRO,(轴一)旋转轴最小限位,MiddleAxis_PositionMin,0,,,,,,
PRO,(轴二)升降轴最小限位,UpdownAxis_PositionMin,0,,,,,,
PRO,(轴三)进出轴最小限位,InoutAxis_PositionMin,0,,,,,,
......
......@@ -12,7 +12,9 @@ namespace OnlineStore.DeviceLibrary
/// 流水线自动料仓-Box类
/// </summary>
public partial class AC_SA_BoxBean : KTK_Store
{ /// <summary>
{
private static bool IsIntSlvBlock = false;
/// <summary>
/// 开始运行
/// </summary>
public static bool IsRun = false;
......@@ -236,10 +238,7 @@ namespace OnlineStore.DeviceLibrary
{
//lastAirValue = airCheck;
lastAirCloseTime = DateTime.Now;
RunAxis();
//打开所有轴
if (!OpenAllAxis())
if (!RunAxis(true ))
{
return false;
}
......@@ -340,11 +339,12 @@ namespace OnlineStore.DeviceLibrary
StoreMove.NewMove(StoreMoveType.StoreReset);
WarnMsg = "";
RunAxis();
//打开四个轴
if (!OpenAllAxis())
if (!RunAxis(true ))
////打开四个轴
//if (!OpenAllAxis())
{
LogUtil.info(LOGGER, StoreName + "复位时打开轴失败,需要再次复位,直接报警停止复位");
return;
}
if (IsHasCompress_Axis)
{
......@@ -553,7 +553,7 @@ namespace OnlineStore.DeviceLibrary
}
#endregion
public void RunAxis()
public bool RunAxis(bool isCheck)
{
KNDIOMove(IO_Type.Run_Sign, IO_VALUE.HIGH);
Thread.Sleep(1000);
......@@ -563,17 +563,31 @@ namespace OnlineStore.DeviceLibrary
string portName = moveAxis.DeviceName;
short slvAddr = moveAxis.GetAxisValue();
ACServerManager.OpenPort(portName);
Thread.Sleep(100);
Thread.Sleep(50);
//初始化串口
//ACServerManager.InitSlvAddr(portName, slvAddr);
if (!IsIntSlvBlock)
{
ACServerManager.InitSlvAddr(portName, slvAddr, moveAxis.TargetSpeed, moveAxis.AddSpeed, moveAxis.DelSpeed,
moveAxis.HomeHighSpeed,moveAxis.HomeLowSpeed,moveAxis.HomeAddSpeed);
moveAxis.HomeHighSpeed, moveAxis.HomeLowSpeed, moveAxis.HomeAddSpeed);
Thread.Sleep(100);
//打开伺服
}
ACServerManager.AlarmClear(portName, slvAddr);
Thread.Sleep(50);
ACServerManager.ServoOn(portName, slvAddr);
}
Thread.Sleep(1000);
//打开所有轴
if (isCheck)
{
if (!OpenAllAxis())
{
return false;
}
}
IsIntSlvBlock = true;
KNDIOMove(IO_Type.Axis_Brake, IO_VALUE.HIGH);
return true;
}
/// <summary>
/// 打开所有轴
......@@ -595,7 +609,7 @@ namespace OnlineStore.DeviceLibrary
ACServerManager.AlarmClear(axis.DeviceName, axis.GetAxisValue());
System.Threading.Thread.Sleep(1200);
ACServerManager.ServoOn(axis.DeviceName, axis.GetAxisValue());
System.Threading.Thread.Sleep(100);
if (ACServerManager.ServerOnStatus(axis.DeviceName, axis.GetAxisValue()))
{
LogUtil.info(LOGGER, StoreName + "清理报警后重新打卡轴成功:" + axis.Explain);
......@@ -685,7 +699,7 @@ namespace OnlineStore.DeviceLibrary
{
return;
}
LogUtil.error(LOGGER, StoreName + "XXXXXXXXXXXXXXXXXXXX 报警,报警类型:" + alarmType);
LogUtil.error(LOGGER, StoreName + " 报警,报警类型:" + alarmType);
if (alarmType != StoreAlarmType.IoSingleTimeOut)
{
StopMove();
......@@ -909,7 +923,7 @@ namespace OnlineStore.DeviceLibrary
// isNoAirCheck = false;
//}
//检查运动轴报警
if (storeRunStatus >= StoreRunStatus.Runing && (!isInSuddenDown))
if (storeRunStatus > StoreRunStatus.Wait && (!isInSuddenDown))
{
CheckAxisAlarm();
}
......
......@@ -236,7 +236,7 @@ namespace OnlineStore.DeviceLibrary
if (isNeedCheckIO)
{
//料盘检测
InStoreLog(" 入库:(SI_00 检测料盘信号");
InStoreLog(" 入库:SI_00 检测料盘信号");
StoreMove.NextMoveStep(StoreMoveStep.SI_00_TrayCheck);
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_1, IO_VALUE.HIGH));
StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_2, IO_VALUE.HIGH));
......@@ -245,7 +245,7 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHasCompress_Axis)
{
InStoreLog("入库:(SI_02 进出轴(叉子)动作至P1, 打开舱门");
InStoreLog("入库:SI_02 进出轴(叉子)动作至P1, 打开舱门");
StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
//打开门 ,门上升
......@@ -254,7 +254,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InStoreLog("入库:(SI_01 定位气缸下降");
InStoreLog("入库:SI_01 定位气缸下降");
StoreMove.NextMoveStep(StoreMoveStep.SI_01_LocationCylinderDown);
KNDIOMove(IO_Type.LocationCylinder_Up, IO_VALUE.HIGH);
......@@ -291,7 +291,7 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHasCompress_Axis)
{
InStoreLog("入库:(SI_02_ 进出轴(叉子)动作至P1,打开舱门");
InStoreLog("入库:SI_02_ 进出轴(叉子)动作至P1,打开舱门");
StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
OpenDoorAndWait();
......@@ -300,14 +300,14 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InStoreLog("入库:(SI_01 定位气缸下降");
InStoreLog("入库:SI_01 定位气缸下降");
StoreMove.NextMoveStep(StoreMoveStep.SI_01_LocationCylinderDown);
LocationDownAndWait();
}
}
if (StoreMove.MoveStep == StoreMoveStep.SI_01_LocationCylinderDown)
{
InStoreLog("入库:(SI_02 进出轴(叉子)动作至P1,打开舱门");
InStoreLog("入库:SI_02 进出轴(叉子)动作至P1,打开舱门");
StoreMove.NextMoveStep(StoreMoveStep.SI_02_InOutAxisHome);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
......@@ -318,7 +318,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_02_InOutAxisHome)
{
InStoreLog("入库:(SI_03 所有轴先回到待机点,轴2、轴1 动作到P1,,轴4动作至P3");
InStoreLog("入库:SI_03 所有轴回到待机点,轴2、轴1 动作到P1,,轴4动作至P3");
StoreMove.NextMoveStep(StoreMoveStep.SI_03_ReturnHome);
if (IsHasCompress_Axis)
{
......@@ -332,27 +332,27 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHasCompress_Axis)
{
//InStoreLog("入库:(SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点))开始");
//InStoreLog("入库:SI_04_CompressWare 压紧物品(有压紧轴的才需要此步骤),压紧轴至P3(压紧前点) 开始");
//StoreMove.NextMoveStep(StoreMoveStep.SI_04_CompressWare);
//ShuoKeControls.AbsMove(Config.CompressAxis_Slv, moveP.ComPress_P3);
//StoreMove.WaitList.Add(WaitResultInfo.WaitShuoKe(Config.CompressAxis_Slv, moveP.ComPress_P3, false));
}
else
{
InStoreLog("入库:(SI_05 叉子进入入料口,进出轴至P2(进料口取料点))开始");
InStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_05_DeviceToDoor);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_04_CompressWare)
{
InStoreLog("入库:(SI_05 叉子进入入料口,进出轴至P2(进料口取料点))开始");
InStoreLog("入库:SI_05 叉子进入入料口,进出轴至P2(进料口取料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_05_DeviceToDoor);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_05_DeviceToDoor)
{
InStoreLog("入库:(SI_06 拿起物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点))开始");
InStoreLog("入库:SI_06 拿物品,压紧轴至P2(压紧点)) 升降轴至P7(进料口取料缓冲点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_06_DoorWarToDevice);
if (IsHasCompress_Axis)
{
......@@ -365,7 +365,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_06_DoorWarToDevice)
{
InStoreLog("入库:(SI_07 叉子 从入料口抽出,进出轴至P1(待机点))开始");
InStoreLog("入库:SI_07 叉子 从入料口抽出,进出轴至P1(待机点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_07_DeviceBackFromDoor);
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
......@@ -374,7 +374,7 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHasCompress_Axis)
{
InStoreLog("入库:(SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点))开始");
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
......@@ -384,14 +384,14 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InStoreLog("入库:(SI_08 定位气缸伸出 开始");
InStoreLog("入库:SI_08 定位气缸伸出 ");
StoreMove.NextMoveStep(StoreMoveStep.SI_08_LocationCylinder_Up);
LocationUpAndWait();
}
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_08_LocationCylinder_Up)
{
InStoreLog("入库:(SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 开始");
InStoreLog("入库:SI_09 移动到库位点,旋转轴至P2(库位点),升降轴至P3(库位入库前点)),关闭舱门 ");
StoreMove.NextMoveStep(StoreMoveStep.SI_09_MoveToBag);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P2, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
......@@ -405,13 +405,13 @@ namespace OnlineStore.DeviceLibrary
{
if (IsHasCompress_Axis)
{
InStoreLog("入库:(SI_11 叉子进入库位中,进出轴至P3(库位取放料点))开始");
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else
{
InStoreLog("入库:(SI_10 定位气缸退回 )开始");
InStoreLog("入库:SI_10 定位气缸退回 ");
StoreMove.NextMoveStep(StoreMoveStep.SI_10_LocationCylinder_Down);
LocationDownAndWait();
......@@ -420,14 +420,14 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep == StoreMoveStep.SI_10_LocationCylinder_Down)
{
KNDIOMove(IO_Type.LocationCylinder_Down, IO_VALUE.LOW);
InStoreLog("入库:(SI_11 叉子进入库位中,进出轴至P3(库位取放料点))开始");
InStoreLog("入库:SI_11 叉子进入库位中,进出轴至P3(库位取放料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_11_DeviceToBag);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_11_DeviceToBag)
{
InStoreLog("入库:(SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至P3(压紧前点))开始!");
InStoreLog("入库:SI_12 放下物品,升降轴至P4(库位入料缓冲点),压紧轴至P3(压紧前点) ");
StoreMove.NextMoveStep(StoreMoveStep.SI_12_PutWareToBag);
if (IsHasCompress_Axis)
{
......@@ -438,7 +438,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_12_PutWareToBag)
{
InStoreLog("入库:(SI_13 叉子从库位中返回,进出轴动作至P1(待机点))开始!");
InStoreLog("入库:SI_13 叉子从库位中返回,进出轴动作至P1(待机点) ");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PositionNum : "";
lastPosId = posId;
......@@ -452,7 +452,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (StoreMove.MoveStep == StoreMoveStep.SI_13_DeviceBackFromBag)
{
InStoreLog("入库:(SI_14 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭,开始!");
InStoreLog("入库:SI_14 返回待机点,轴2/轴1/轴4动作至P1(待机点)),检测门关闭");
StoreMove.NextMoveStep(StoreMoveStep.SI_14_GoBack);
if (IsHasCompress_Axis)
{
......@@ -505,7 +505,7 @@ namespace OnlineStore.DeviceLibrary
if (IsHasCompress_Axis)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_02_DeviceBack);
OutStoreLog("出库:(SO_02 叉子先运动到P1 ,打开舱门 开始");
OutStoreLog("出库:SO_02 叉子先运动到P1 ,打开舱门 开始");
//ACAxisMove(Config.InOut_Axis, StoreMove.MoveParam.MoveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1);
......@@ -514,7 +514,7 @@ namespace OnlineStore.DeviceLibrary
else
{
StoreMove.NextMoveStep(StoreMoveStep.SO_01_LocationCylinderDown);
OutStoreLog("出库:(SO_01 定位气缸下降");
OutStoreLog("出库:SO_01 定位气缸下降");
LocationDownAndWait();
}
}
......@@ -537,13 +537,13 @@ namespace OnlineStore.DeviceLibrary
if (StoreMove.MoveStep == StoreMoveStep.SO_01_LocationCylinderDown)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_02_DeviceBack);
OutStoreLog("出库:(SO_02 叉子先运动到P1 开始");
OutStoreLog("出库:SO_02 叉子先运动到P1 ");
InOutBackToP1(StoreMove.MoveParam.MoveP.InOut_P1);
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_02_DeviceBack)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_03_ToBagPosition);
OutStoreLog("出库:(SO_03 所有轴运行到库位, 压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点) ) 开始");
OutStoreLog("出库:SO_03 走到库位,压紧轴至P3(压紧前点) ,旋转轴至P2(库位点),升降轴至P5(库位出库前点)");
if (IsHasCompress_Axis)
{
//ShuoKeControls.AbsMove(Config.CompressAxis_Slv, moveP.ComPress_P3);
......@@ -555,12 +555,12 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep == StoreMoveStep.SO_03_ToBagPosition)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_04_DeviceToBag);
OutStoreLog("出库:(SO_04 叉子进入库位中, 进出轴至P3(库位取放料点))开始");
OutStoreLog("出库:SO_04 叉子进入库位中, 进出轴至P3(库位取放料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_04_DeviceToBag)
{
OutStoreLog("出库:(SO_05 库位的物品放入叉子上,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点))开始");
OutStoreLog("出库:SO_05 拿起物品,升降轴至P6(库位出料缓冲点),压紧轴至P2(压紧点) ");
StoreMove.NextMoveStep(StoreMoveStep.SO_05_BagWareToDevice);
//电缸微动至对应料盘的上端位置
if (IsHasCompress_Axis)
......@@ -573,7 +573,7 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep == StoreMoveStep.SO_05_BagWareToDevice)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_06_BagDeviceBack);
OutStoreLog("出库:(SO_06 叉子从 库位返回,进出轴至P1(待机点))开始");
OutStoreLog("出库:SO_06 叉子从库位返回,进出轴至P1(待机点) ");
//ACAxisMove(Config.InOut_Axis, moveP.InOut_P1, Config.InOutAxis_P1_Speed);
InOutBackToP1(moveP.InOut_P1);
//把库位的物品放到取到叉子上之后是出仓完成
......@@ -588,7 +588,7 @@ namespace OnlineStore.DeviceLibrary
if (IsHasCompress_Axis)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition);
OutStoreLog("出库: (SO_08 所有设备运行到门,旋转轴至P1(待机点)升降轴至P2(进料口出料前点)),打开舱门 开始");
OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点),打开舱门 ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
//打开舱门
......@@ -597,14 +597,14 @@ namespace OnlineStore.DeviceLibrary
else
{
StoreMove.NextMoveStep(StoreMoveStep.SO_07_LocationCylinder_Up);
OutStoreLog("出库: (SO_07 定位气缸伸出(有压紧轴的不需要此步骤),,定位气缸伸出 )开始");
OutStoreLog("出库:SO_07 定位气缸伸出 ");
LocationUpAndWait();
}
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_07_LocationCylinder_Up)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_08_ToDoorPosition);
OutStoreLog("出库: (SO_08 所有设备运行到门,旋转轴至P1(待机点)升降轴至P2(进料口出料前点))开始");
OutStoreLog("出库:SO_08 走到料门口,旋转轴至P1(待机点)升降轴至P2(进料口出料前点) ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P2, Config.UpDownAxis_P2_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
//此处需要等待box门口没有盘
......@@ -617,13 +617,13 @@ namespace OnlineStore.DeviceLibrary
if (IsHasCompress_Axis)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_10_DeviceToDoor);
OutStoreLog("出库:(SO_10 叉子进出料口,进出轴至P2(进料口取料点))开始");
OutStoreLog("出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) ");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else
{
StoreMove.NextMoveStep(StoreMoveStep.SO_09_LocationCylinder_Down);
OutStoreLog("出库:(SO_09 定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回 )开始");
OutStoreLog("出库:SO_09 定位气缸退回,定位气缸退回 ");
LocationDownAndWait();
}
......@@ -631,13 +631,13 @@ namespace OnlineStore.DeviceLibrary
//此处需要等待移栽没有工作,才能把盘放入出料口
else if (StoreMove.MoveStep == StoreMoveStep.SO_09_LocationCylinder_Down)
{
OutStoreLog("出库:(SO_10 叉子进出料口,进出轴至P2(进料口取料点))开始");
OutStoreLog("出库:SO_10 叉子进出料口,进出轴至P2(进料口取料点) ");
StoreMove.NextMoveStep(StoreMoveStep.SO_10_DeviceToDoor);
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_10_DeviceToDoor)
{
OutStoreLog("出库:(SO_11 把物品放下,升降轴至P8(进料口出料缓冲点)压紧轴至P1(待机点)) 开始!");
OutStoreLog("出库:SO_11 放下物品,升降轴至P8(进料口出料缓冲点) ");
StoreMove.NextMoveStep(StoreMoveStep.SO_11_DevicePutWare);
if (IsHasCompress_Axis)
{
......@@ -649,13 +649,13 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep == StoreMoveStep.SO_11_DevicePutWare)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_12_DeviceOutFromDoor);
OutStoreLog("出库:(SO_12 叉子从出料口返回,,进出轴动作至P1(待机点))开始!");
OutStoreLog("出库:SO_12 叉子从出料口返回,,进出轴动作至P1(待机点) ");
InOutBackToP1(moveP.InOut_P1);
}
else if (StoreMove.MoveStep == StoreMoveStep.SO_12_DeviceOutFromDoor)
{
StoreMove.NextMoveStep(StoreMoveStep.SO_13_GoBack);
OutStoreLog("出库:(SO_13 升降轴返回,轴2至P1(待机点))开始,关闭舱门!");
OutStoreLog("出库:SO_13 升降轴返回,轴2至P1(待机点) ,关闭舱门");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
CloseDoorAndWait();
}
......
......@@ -283,16 +283,16 @@ namespace OnlineStore.DeviceLibrary
//判断是否需要重新运动
if (StoreMove.CanWhileCount > 0)
{
LogUtil.error(LOGGER, StoreName + " storeMoveStep=" + StoreMove.MoveStep +moveAxis.DisplayStr+ "目标位置[" + targetPosition + "]速度[" + targetSpeed + "]当前位置[" + outCount +
"],误差值大于最大误差[" + moveAxis.CanErrorCountMax + "],但是轴已经停止运动,还有[" + StoreMove.CanWhileCount + "]次可以重复运动的次数");
LogUtil.error(LOGGER, StoreName + " storeMoveStep=" + StoreMove.MoveStep + moveAxis.DisplayStr + "目标位置[" + targetPosition + "]重新开始运动");
LogUtil.error(LOGGER, moveAxis.DisplayStr+ "目标位置[" + targetPosition + "]当前位置[" + outCount +
"],误差过大,重新开始运动,剩余[" + StoreMove.CanWhileCount + "]次");
//LogUtil.error(LOGGER, StoreName + " storeMoveStep=" + StoreMove.MoveStep + moveAxis.DisplayStr + "目标位置[" + targetPosition + "]重新开始运动");
ACServerManager.AbsMove(moveAxis.DeviceName, moveAxis.GetAxisValue(), targetPosition, targetSpeed);
StoreMove.CanWhileCount--;
}
else
{
msg = StoreName + " storeMoveStep=" + StoreMove.MoveStep + moveAxis.DisplayStr + "目标位置[" + targetPosition + "]当前位置[" + outCount
+ "]误差值大于最大误差[" + moveAxis.CanErrorCountMax + "],但是轴已经停止运动,需要报警";
+ "],误差过大,需要报警";
LogUtil.error(LOGGER, msg);
return false;
}
......@@ -324,14 +324,14 @@ namespace OnlineStore.DeviceLibrary
//判断是否需要重新运动
if (StoreMove.CanWhileCount > 0)
{
LogUtil.error(LOGGER, StoreName + moveAxis.DisplayStr + "收到原点完成信号,当前位置["+outCount+"],还有[" + StoreMove.CanWhileCount + "]次可以重复运动的次数");
LogUtil.error(LOGGER, StoreName + moveAxis.DisplayStr + "重新回原点");
LogUtil.error(LOGGER, moveAxis.DisplayStr + "收到原点完成信号,当前位置["+outCount+ "],重新回原点,剩余[" + StoreMove.CanWhileCount + "]次");
//LogUtil.error(LOGGER, StoreName + moveAxis.DisplayStr + "重新回原点");
ACServerManager.HomeMove(moveAxis.DeviceName, moveAxis.GetAxisValue(), moveAxis.HomeHighSpeed);
StoreMove.CanWhileCount--;
}
else
{
msg = StoreName + " storeMoveStep=" + StoreMove.MoveStep + moveAxis.DisplayStr + "收到原点完成信号,当前位置[" + outCount + "],误差值大于[" + moveAxis.CanErrorCountMax + "],需要报警";
msg = StoreName + " storeMoveStep=" + StoreMove.MoveStep + moveAxis.DisplayStr + "收到原点完成信号,当前位置[" + outCount + "],误差过大,需要报警";
LogUtil.error(LOGGER, msg);
return false;
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!