Commit aa9883bd LN

增加夹爪料盘检测信号

1 个父辈 f379d31e
......@@ -33,7 +33,7 @@ namespace OnlineStore.AssemblyLine
Dictionary<string, IOTextControl> DOControlList = new Dictionary<string, IOTextControl>();
private void LoadIOList()
{
int count = 16;
int count = 18;
int roleindex = 0;
this.tableLayoutPanel1.RowStyles.Clear();
this.tableLayoutPanel1.RowCount = count;
......@@ -49,11 +49,11 @@ namespace OnlineStore.AssemblyLine
foreach (ConfigIO ioValue in LineManager.Config.DIList.Values)
{
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + ioValue.Explain, ioValue.ProName);
if (DIControlList.Count > count)
if (DIControlList.Count >= count)
{
roleindex = DIControlList.Count - count-1;
// roleindex = DIControlList.Count - count-1;
this.tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
this.tableLayoutPanel3.Controls.Add(control, 0, roleindex);
this.tableLayoutPanel3.Controls.Add(control, 0, roleindex - count);
}
else
{
......@@ -187,7 +187,8 @@ namespace OnlineStore.AssemblyLine
}
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
// KNDAIManager.NeedShow = true;
// KNDAIManager.NeedShow = true;
tabControl1.TabPages.RemoveAt(1);
}
private void cmbWriteIO_DrawItem(object sender, DrawItemEventArgs e)
......@@ -364,5 +365,49 @@ namespace OnlineStore.AssemblyLine
{
BtnMove(button2, "环形线横移4阻挡下降", "环形线横移4阻挡上升", IO_Type.SW4_StopDown);
}
private void btnShuntStop1_Click(object sender, EventArgs e)
{
BtnMove(btnShuntStop1, "分流前端阻挡下降", "分流前端阻挡上升", IO_Type.Shunt_StopDown_Front);
}
private void btnShuntStop2_Click(object sender, EventArgs e)
{
BtnMove(btnShuntStop2, "分流后端阻挡下降", "分流后端阻挡上升", IO_Type.Shunt_StopDown_Back);
}
private void btnShuntupdown1_Click(object sender, EventArgs e)
{
BtnMove(btnShuntupdown1 , "分流横移机构1上升", "分流横移机构1下降", IO_Type.Shunt_UpdownCylinder_Down1, IO_Type.Shunt_UpdownCylinder_Up1);
}
private void btnShuntupdown2_Click(object sender, EventArgs e)
{
BtnMove(btnShuntupdown2, "分流横移机构2上升", "分流横移机构2下降", IO_Type.Shunt_UpdownCylinder_Down2, IO_Type.Shunt_UpdownCylinder_Up2);
}
private void btnShuntRun1_Click(object sender, EventArgs e)
{
BtnMove(btnShuntRun1, "分流横移机构1皮带运行", "分流横移机构1皮带停止", IO_Type.Shunt_MotorRun1);
}
private void btnShuntRun2_Click(object sender, EventArgs e)
{
BtnMove(btnShuntRun2, "分流横移机构2皮带运行", "分流横移机构2皮带停止", IO_Type.Shunt_MotorRun2);
}
private void btnShuntClose_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Shunt_StopDown_Front, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_StopDown_Back, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_UpdownCylinder_Down1, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_UpdownCylinder_Up1, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_UpdownCylinder_Down2, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_UpdownCylinder_Up2, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_MotorRun1, IO_VALUE.LOW);
IOManager.IOMove(IO_Type.Shunt_MotorRun2, IO_VALUE.LOW);
}
}
}
......@@ -70,6 +70,7 @@
<ItemGroup>
<Compile Include="agvClient\AgvClient.cs" />
<Compile Include="assemblyLine\FeedingEquip_OutStore.cs" />
<Compile Include="assemblyLine\LineBean_Shunt.cs" />
<Compile Include="assemblyLine\OutTrayLineBean.cs" />
<Compile Include="assemblymanager\ALineManager.cs" />
<Compile Include="assemblyLine\DischargeLine.cs" />
......
......@@ -64,7 +64,7 @@ DI,0,SL1上料横移气缸放料端,SL_MoveCylinder_Give,6,PRO_AOI_IP_12,0,SL1上料横移气
DI,0,SL1上料气缸放松端,SL_MoveCylinder_Slack,7,PRO_AOI_IP_12,0,SL1上料气缸放松端,X128,X128
DI,0,SL1上料气缸夹紧端,SL_MoveCylinder_Tighten,8,PRO_AOI_IP_12,0,SL1上料气缸夹紧端,X129,X129
DI,1000,环形线横移1托盘检测,SW1_TrayCheck,9,PRO_AOI_IP_12,0,环形线横移1托盘检测,X130,X130
,1000,环形线横移1料盘检测1,SW1_ReelCheck,10,PRO_AOI_IP_12,0,环形线横移1料盘检测1,X131,X131
DI,0,上料1夹爪料盘检测,ReelCheck,10,PRO_AOI_IP_12,0,上料1夹爪料盘检测,X131,X131
DI,1000,环形线横移1顶升上升端,SW1_TopCylinder_Up,11,PRO_AOI_IP_12,0,环形线横移1顶升上升端,X132,X132
DI,1000,环形线横移1顶升下降端,SW1_TopCylinder_Down,12,PRO_AOI_IP_12,0,环形线横移1顶升下降端,X133,X133
DI,1000,环形线横移1定位上升端,SW1_LocationCylinder_Up,13,PRO_AOI_IP_12,0,环形线横移1定位上升端,X134,X134
......
......@@ -65,7 +65,7 @@ DI,0,SL2上料气缸放松端,SL_MoveCylinder_Slack,7,PRO_AOI_IP_14,0,SL2上料气缸放松端
DI,0,SL2上料气缸夹紧端,SL_MoveCylinder_Tighten,8,PRO_AOI_IP_14,0,SL2上料气缸夹紧端,X169,X169
DI,0,FL1阻挡检测,FL_StopCheck,9,PRO_AOI_IP_14,0,FL1阻挡检测,X170,X170
DI,0,FL1托盘检测,FL_TrayCheck,10,PRO_AOI_IP_14,0,FL1托盘检测,X171,X171
DI,0,FL1料盘检测1,FL_ReelCheck,11,PRO_AOI_IP_14,0,FL1料盘检测1,X172,X172
DI,0,上料2夹爪料盘检测,ReelCheck,11,PRO_AOI_IP_14,0,上料2夹爪料盘检测,X172,X172
DI,0,FL1顶升上升端,FL_TopCylinder_Up,12,PRO_AOI_IP_14,0,FL1顶升上升端,X173,X173
DI,0,FL1顶升下降端,FL_TopCylinder_Down,13,PRO_AOI_IP_14,0,FL1顶升下降端,X174,X174
,,,,14,PRO_AOI_IP_14,0,,X175,X175
......
......@@ -898,14 +898,27 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_22_BatchAxisDown))
{
FI_23_GetPosID();
if (Config.DIList.ContainsKey(IO_Type.ReelCheck) && IOValue(IO_Type.ReelCheck).Equals(IO_VALUE.LOW))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_23_WaitReelCheck);
InLog(" " + MoveInfo.SLog + " 等待料盘检测信号:ReelCheck");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ReelCheck, IO_VALUE.HIGH));
}
else
{
FI_24_GetPosID();
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_23_GetPosID))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_23_WaitReelCheck))
{
FI_24_GetPosID();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_24_GetPosID))
{
if (getPosTask.IsCompleted && LastPosParam != null)
{
MoveInfo.NextMoveStep(LineMoveStep.FI_24_WaitTray);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
MoveInfo.NextMoveStep(LineMoveStep.FI_25_WaitTray);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
InLog(" " + MoveInfo.SLog + " 开始拦截空托盘 " + LastPosParam.ToStr() + "");
ClearTimeoutAlarm("获取库位号超时");
......@@ -917,11 +930,11 @@ namespace OnlineStore.DeviceLibrary
Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_24_WaitTray))//TODO
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_25_WaitTray))//TODO
{
if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_11_CodeRember))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_25_CylinderDown);
MoveInfo.NextMoveStep(LineMoveStep.FI_26_CylinderDown);
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Up, IO_Type.SL_MoveCylinder_Down);
if (Config.SidesWayNum > 0)
{
......@@ -939,36 +952,29 @@ namespace OnlineStore.DeviceLibrary
Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_25_CylinderDown))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_26_CylinderDown))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_26_CylinderRelax);
MoveInfo.NextMoveStep(LineMoveStep.FI_27_CylinderRelax);
InLog("料盘移栽" + MoveInfo.SLog + ":上料气缸放松");
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Tighten, IO_Type.SL_MoveCylinder_Slack);
ClearTimeoutAlarm("等待空托盘到达超时");
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_26_CylinderRelax))
{
//if (Config.SidesWayNum.Equals(1))
//{
// FI_28_CylinderUp();
//}
//else
//{
MoveInfo.NextMoveStep(LineMoveStep.FI_27_WaitCylinderUp);
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_27_CylinderRelax))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_28_WaitCylinderUp);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_MoveCylinder_Down, IO_VALUE.LOW));
CylinderMove(null, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up);
//}
CylinderMove(null, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up);
TrayPreMove();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_27_WaitCylinderUp))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_28_WaitCylinderUp))
{
TrayMoveOk();
FI_28_CylinderUp();
FI_29_CylinderUp();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_28_CylinderUp))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_29_CylinderUp))
{
MoveInfo.NextMoveStep(LineMoveStep.FI_29_UpDownAxisToP1);
MoveInfo.NextMoveStep(LineMoveStep.FI_30_UpDownAxisToP1);
// InLog("料盘移栽" + MoveInfo.SLog + ":升降伺服到P1点");
TrayMoveOk(true);
if (!UpdownAxis.IsInPosition(Config.UpDownAxisP1))
......@@ -981,7 +987,7 @@ namespace OnlineStore.DeviceLibrary
InLog("料盘移栽" + MoveInfo.SLog + ":升降轴已在P1点,托盘放行");
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_29_UpDownAxisToP1))
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_30_UpDownAxisToP1))
{
if (getPosTask == null || getPosTask.IsCompleted)
{
......@@ -1077,9 +1083,9 @@ namespace OnlineStore.DeviceLibrary
}
private Task getPosTask = null;
private InOutParam LastPosParam = null;
private void FI_23_GetPosID()
private void FI_24_GetPosID()
{
MoveInfo.NextMoveStep(LineMoveStep.FI_23_GetPosID);
MoveInfo.NextMoveStep(LineMoveStep.FI_24_GetPosID);
InLog("清空LastPosResult,从服务器获取入库库位");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
LastPosParam = null;
......@@ -1127,9 +1133,9 @@ namespace OnlineStore.DeviceLibrary
});
}
private void FI_28_CylinderUp()
private void FI_29_CylinderUp()
{
MoveInfo.NextMoveStep(LineMoveStep.FI_28_CylinderUp);
MoveInfo.NextMoveStep(LineMoveStep.FI_29_CylinderUp);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Down, IO_Type.SL_MoveCylinder_Up);
//如果是小料盘,且升降轴需要上升,
......@@ -1523,7 +1529,7 @@ namespace OnlineStore.DeviceLibrary
if (trayCanUse && runStatus.Equals(LineRunStatus.Busy) && MoveInfo.MoveType.Equals(LineMoveType.InStore))
{
//入料执行中, 且需要空托盘
if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_24_WaitTray) && MoveInfo.IsInWait.Equals(false))
if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_25_WaitTray) && MoveInfo.IsInWait.Equals(false))
//if (MoveInfo.MoveStep >= LineMoveStep.FI_11_CylinderUp && MoveInfo.MoveStep <= LineMoveStep.FI_20_WaitTray)
{
......
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
partial class LineBean
{
}
}
......@@ -206,7 +206,7 @@ namespace OnlineStore.DeviceLibrary
}
private static void SaveImageToFile(string deviceName, string cameraName, HalconDotNet.HObject bitmap)
{
string date = DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + DateTime.Now.Millisecond.ToString().PadLeft(4, '0');
string date = deviceName.Trim().Replace('_', '-') + "-" + DateTime.Now.ToString("yyyyMMdd-HHmmss") + "-" + DateTime.Now.Millisecond.ToString().PadLeft(4, '0');
string dire = @"D:\image\" + deviceName.Trim().Replace('_', '-') + @"\" + cameraName.Trim().Replace('_', '-').Replace(':', '-') + @"\";
string iamgeName = date + ".bmp";
try
......
......@@ -464,6 +464,63 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 分流横移处理 6000 开始
Shunt00_Wait = 6000,
/// <summary>
/// 阻挡气缸下降
/// </summary>
Shunt01_StopDown = 6001,
/// <summary>
/// 等待到托盘信号后,需要持续一段时间
/// </summary>
Shunt02_WaitCheckTime = 6002,
/// <summary>
/// 等待到托盘信号后,需要持续一段时间
/// </summary>
Shunt03_WaitTime = 6003,
/// <summary>
/// 等待轨道1夹具检测信号,等待横移3或横移1无托盘
/// </summary>
Shunt04_WaitCanUp = 6004,
/// <summary>
/// 定位气缸下降
/// </summary>
Shunt05_LocationDown = 6005,
/// <summary>
/// 横移轨道顶升气缸上升
/// </summary>
Shunt06_TopCylinderUp = 6006,
/// <summary>
/// 等待第二个横移没有托盘
/// </summary>
Shunt07_WaitNoTray = 6007,
/// <summary>
/// 横移轨道点击转动
/// </summary>
Shunt08_DriveMotorMove = 6008,
/// <summary>
/// 收到横移轨道2夹具检测信号
/// </summary>
Shunt09_WaitOutCheck = 6009,
/// <summary>
/// 等待出口信号持续一段时间
/// </summary>
Shunt10_WatOutFixture2 = 6010,
/// <summary>
/// 停止横移轨道转动,横移轨道顶升气缸下降
/// </summary>
Shunt11_TopDown = 6011,
/// <summary>
/// 等待托盘流出,上升阻挡气缸
/// </summary>
Shunt12_WaitTrayGo = 6012,
#endregion
#region 入料装置原点返回,10000开始
/// <summary>
......@@ -665,37 +722,44 @@ namespace OnlineStore.DeviceLibrary
/// 提升轴下降到料盘不溢出的位置
/// </summary>
FI_22_BatchAxisDown,
/// <summary>
/// 等待料盘检测信号
/// </summary>
FI_23_WaitReelCheck,
/// <summary>
/// 料盘移栽:从服务器获取入库库位号
/// </summary>
FI_23_GetPosID,
FI_24_GetPosID,
/// <summary>
/// 料盘移栽:等待空托盘到达,移栽伺服下降到P2,并预扫码
/// </summary>
FI_24_WaitTray,
FI_25_WaitTray,
/// <summary>
/// 料盘移栽: 上料机构下降
/// </summary>
FI_25_CylinderDown,
FI_26_CylinderDown,
/// <summary>
/// 料盘移栽: 上料气缸放松
/// </summary>
FI_26_CylinderRelax,
FI_27_CylinderRelax,
/// <summary>
/// 料盘移栽: 上料横移机构上升
/// </summary>
FI_27_WaitCylinderUp,
FI_28_WaitCylinderUp,
/// <summary>
/// 料盘移栽:上料横移机构上升,定位或者顶升可以先下降
/// </summary>
FI_28_CylinderUp,
FI_29_CylinderUp,
/// <summary>
/// 料盘移栽:升降伺服到P1点
/// </summary>
FI_29_UpDownAxisToP1,
FI_30_UpDownAxisToP1,
......@@ -706,30 +770,30 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 上料完成,升降盘定位气缸后退
/// </summary>
FI_32_TrayLocationCylinder_After = 11032,
FI_32_TrayLocationCylinder_After,
/// <summary>
/// 上料完成,提升伺服到P1点
/// </summary>
FI_33_BatchAxisToP1 = 11033,
FI_33_BatchAxisToP1,
/// <summary>
/// 上料完成,等待出料线体无料架
/// </summary>
FI_34_OutCheck = 11034,
FI_34_OutCheck,
/// <summary>
/// 上料完成,出口顶升气缸上升
/// </summary>
FI_35_OutTopCylinder_Up = 11035,
FI_35_OutTopCylinder_Up ,
/// <summary>
///上料完成, 线体横移电机运转,等待料架到达出口
/// </summary>
FI_36_SideWayLineRun = 11036,
FI_36_SideWayLineRun ,
/// <summary>
///上料完成,等待料架到达出口
/// </summary>
FI_37_WaitShelfGo=11307,
FI_37_WaitShelfGo,
/// <summary>
///上料完成, 料架到达出口,线体横移电机停止
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!