Commit 0ddfd175 LN

io模块增加重连。皮带线修改

1 个父辈 8ad7ddd9
......@@ -27,6 +27,7 @@ namespace OnlineStore.AssemblyLine
internal FrmDischargeLine(DischargeLine moveEquip)
{
equipBase = moveEquip;
dlineRun = new LineTurnBean(equipBase.DeviceID);
this.equipBean = moveEquip;
Control.CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
......@@ -65,7 +66,7 @@ namespace OnlineStore.AssemblyLine
cmbWriteIO.DisplayMember = "DisplayStr";
}
private LineTurnBean dlineRun = null;
private void timer1_Tick(object sender, EventArgs e)
{
try
......@@ -74,13 +75,13 @@ namespace OnlineStore.AssemblyLine
{
return;
}
if ( this.Visible)
if (this.Visible)
{
ReadIOList();
//lblTrayNum.Text = "托盘编码:" + TrayManager.GetTrayNum(equipBean.DeviceID);
}
cmbLineType.Enabled = !equipBean.LineRuning;
if (equipBean.LineRuning)
cmbLineType.Enabled = !dlineRun.InTurn;
if (dlineRun.InTurn)
{
lblLineInfo.Text = "线体运转中";
lblLineInfo.ForeColor = Color.Green;
......@@ -108,7 +109,7 @@ namespace OnlineStore.AssemblyLine
}
lblMoveInfo.Text = equipBean.GetMoveStr();
// string canOut = LineManager.Line.CanOutStore(equipBean.DeviceID) ? "可出库":"不可出库" ;
lblStoreStatus.Text = KTK_Store.GetRunStr(equipBean.lineStatus, equipBean.runStatus) ;
lblStoreStatus.Text = KTK_Store.GetRunStr(equipBean.lineStatus, equipBean.runStatus);
lblThisSta.Text = equipBean.WarnMsg;
//string text = "";
//List<InOutParam> ps = new List<InOutParam>(equipBean.waitOutStoreList);
......@@ -124,9 +125,10 @@ namespace OnlineStore.AssemblyLine
//{
// lblInstoreList.Text = text;
//}
}catch(Exception ex)
}
catch (Exception ex)
{
LogUtil.error(equipBean.Name+ "界面定时器出错:"+ex.ToString());
LogUtil.error(equipBean.Name + "界面定时器出错:" + ex.ToString());
}
}
......@@ -238,7 +240,7 @@ namespace OnlineStore.AssemblyLine
btnStop.Enabled = true;
btnReset.Enabled = isStart;
//btnInStore.Enabled = isStart;
btnOutStore.Enabled = isStart;
btnLine1Test.Enabled = isStart;
}
private void FrmIOStatus_Shown(object sender, EventArgs e)
{
......@@ -276,7 +278,7 @@ namespace OnlineStore.AssemblyLine
equipBean.Config.IsDebug = 1;
LineManager.SaveDischargeLineConfig(equipBean.Config);
equipBean.ChangeDebug(true);
LogUtil.info(equipBean.Name+ "用户切换到调试状态 ");
LogUtil.info(equipBean.Name + "用户切换到调试状态 ");
}
}
}
......@@ -299,19 +301,12 @@ namespace OnlineStore.AssemblyLine
private void btnOutStore_Click(object sender, EventArgs e)
{
if (equipBean.runStatus .Equals(LineRunStatus.Runing))
bool result = equipBean.TrayLine1.StartOut(new InOutParam(0, "CodeTest", "1#AC1_1_1", 8, 7));
if (!result)
{
equipBean.StartOutStoreMove(new InOutParam( ));
MessageBox.Show("皮带线1出库测试失败");
}
else
{
MessageBox.Show("未启动或不在空闲中,无法入库测试!");
}
}
private void btnCloseAll_Click(object sender, EventArgs e)
{
foreach (Control con in groupBox5.Controls)
......@@ -321,7 +316,7 @@ namespace OnlineStore.AssemblyLine
con.BackColor = BackColor = Color.White;
}
}
foreach(ConfigIO io in equipBase.baseConfig.DOList.Values)
foreach (ConfigIO io in equipBase.baseConfig.DOList.Values)
{
IOManager.instance.WriteSingleDO(io.IO_IP, io.SlaveID, io.GetIOAddr(), IO_VALUE.LOW);
}
......@@ -352,32 +347,42 @@ namespace OnlineStore.AssemblyLine
private void btnStrart_Click(object sender, EventArgs e)
{
if (equipBean.LineRuning)
if (dlineRun.InTurn)
{
MessageBox.Show("线体已在运转中,请先点击停止");
return;
}
int index = cmbLineType.SelectedIndex;
string moveIo = IO_Type.DLine_Run1;
string waitIo = IO_Type.Location_Check1;
string waitIo = IO_Type.ExitTray_Check1;
if (index.Equals(1))
{
moveIo = IO_Type.DLine_Run2;
waitIo = IO_Type.Location_Check2;
waitIo = IO_Type.EntryLocation_Check2;
}
else if (index.Equals(2))
{
moveIo = IO_Type.DLine_Run3;
waitIo = IO_Type.Location_Check3;
}
equipBean.StartLineRun(moveIo, waitIo);
else if (index.Equals(3))
{
moveIo = IO_Type.DLine_Run1;
waitIo = IO_Type.ExitLocation_Check1;
}
else if (index.Equals(4))
{
moveIo = IO_Type.DLine_Run2;
waitIo = IO_Type.ExitLocation_Check2;
}
dlineRun.StartLineRun(moveIo, waitIo);
cmbLineType.Enabled = false;
}
private void btnlineStop_Click(object sender, EventArgs e)
{
equipBean.StopLineRun();
dlineRun.StopLineRun();
}
private void btnScan_Click(object sender, EventArgs e)
......@@ -396,6 +401,16 @@ namespace OnlineStore.AssemblyLine
LogUtil.info(equipBean.Name + "扫码测试结果:" + msg);
MessageBox.Show(equipBean.Name + "扫码测试结果:" + msg);
}
private void btnLine2Test_Click(object sender, EventArgs e)
{
bool result = equipBean.TrayLine2.StartOut(new InOutParam(0, "CodeTest", "2#AC2_2_2", 8, 7));
if (!result)
{
MessageBox.Show("皮带线2出库测试失败");
}
}
}
}
......
......@@ -47,5 +47,23 @@ D2(上料模块出口)
上料模块回原点之前链条先转
20191216
处理皮带线1和2的入口检测信号改为出口定位信号
出库皮带线处理
入口是否有料需要记录
皮带线转动五次后,料盘将会离开,则不需要转动了
最后一盘料的位置
=0,>5=0
需要放料:皮带线出口处必须无料,
转到到入口定位到位
放下料盘=1
转动到出库定位到位(转动一点)
判断出口处是否有料(转一工位=2),有料,等待皮带线3入口无料,且停止时转动到出口定位到位
无料,直接转动一个工位
判断出口处是否有料(转一工位=3),有料,等待皮带线3入口无料,且停止时转动到出口定位到位
无料,结束
\ No newline at end of file
......@@ -67,6 +67,7 @@
<ItemGroup>
<Compile Include="agvClient\AgvClient.cs" />
<Compile Include="assemblyLine\FeedingEquip_OutStore.cs" />
<Compile Include="assemblyLine\OutTrayLineBean.cs" />
<Compile Include="assemblymanager\ALineManager.cs" />
<Compile Include="assemblyLine\DischargeLine.cs" />
<Compile Include="assemblyLine\DischargeLine_Partial.cs" />
......
......@@ -4,16 +4,16 @@ PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
,,,,,,,,,
DI,0,出料皮带线体1急停,DLine_SuddenStop,0,PRO_AOI_IP_2,0,出料皮带线体1急停,X021,X021
DI,0,出料皮带线体1复位,DLine_Reset,1,PRO_AOI_IP_2,0,出料皮带线体1复位,X022,X022
DI,0,皮带线1定位检测,Location_Check1,2,PRO_AOI_IP_2,0,皮带线1定位检测,X023,X023
DI,0,皮带线1入口料盘检测,EntryPosition_Check1,3,PRO_AOI_IP_2,0,皮带线1入口料盘检测,X024,X024
DI,0,皮带线1出口料盘检测,ExitPosition_Check1,4,PRO_AOI_IP_2,0,皮带线1出口料盘检测,X025,X025
DI,0,皮带线2定位检测,Location_Check2,5,PRO_AOI_IP_2,0,皮带线2定位检测,X026,X026
DI,0,皮带线2入口料盘检测,EntryPosition_Check2,6,PRO_AOI_IP_2,0,皮带线2入口料盘检测,X027,X027
DI,0,皮带线2出口料盘检测,ExitPosition_Check2,7,PRO_AOI_IP_2,0,皮带线2出口料盘检测,X028,X028
DI,0,皮带线1入口定位检测,EntryLocation_Check1,2,PRO_AOI_IP_2,0,皮带线1入口定位检测,X023,X023
DI,0,皮带线1出口定位检测,ExitLocation_Check1,3,PRO_AOI_IP_2,0,皮带线1出口定位检测,X024,X024
DI,0,皮带线1出口料盘检测,ExitTray_Check1,4,PRO_AOI_IP_2,0,皮带线1出口料盘检测,X025,X025
DI,0,皮带线2入口定位检测,EntryLocation_Check2,5,PRO_AOI_IP_2,0,皮带线2入口定位检测,X026,X026
DI,0,皮带线2出口定位检测,ExitLocation_Check2,6,PRO_AOI_IP_2,0,皮带线2出口定位检测,X027,X027
DI,0,皮带线2出口料盘检测,ExitTray_Check2,7,PRO_AOI_IP_2,0,皮带线2出口料盘检测,X028,X028
DI,0,皮带线3定位检测,Location_Check3,8,PRO_AOI_IP_2,0,皮带线3定位检测,X029,X029
DI,0,皮带线3入口料盘检测,EntryPosition_Check3,9,PRO_AOI_IP_2,0,皮带线3入口料盘检测,X030,X030
DI,0,皮带线3中间位置料盘检测,MiddlePosition_Check3,10,PRO_AOI_IP_2,0,皮带线3中间位置料盘检测,X031,X031
DI,0,皮带线3出口料盘检测,ExitPosition_Check3,11,PRO_AOI_IP_2,0,皮带线3出口料盘检测,X032,X032
DI,0,皮带线3入口料盘检测,EntryTray_Check3,9,PRO_AOI_IP_2,0,皮带线3入口料盘检测,X030,X030
DI,0,皮带线3中间位置料盘检测,MiddleTray_Check3,10,PRO_AOI_IP_2,0,皮带线3中间位置料盘检测,X031,X031
DI,0,皮带线3出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_2,0,皮带线3出口料盘检测,X032,X032
DI,0,分盘装置1定位气缸上升端,SeparateDevice_Up,12,PRO_AOI_IP_2,0,分盘装置1定位气缸上升端,X033,X033
DI,0,分盘装置1定位气缸下降端,SeparateDevice_Down,13,PRO_AOI_IP_2,0,分盘装置1定位气缸下降端,X034,X034
DI,0,分盘装置1料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_2,0,分盘装置1料盘检测,X035,X035
......
......@@ -4,16 +4,16 @@ PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
,,,,,,,,,
DI,0,出料皮带线体2急停,DLine_SuddenStop,0,PRO_AOI_IP_3,0,出料皮带线体2急停,X041,X041
DI,0,出料皮带线体2复位,DLine_Reset,1,PRO_AOI_IP_3,0,出料皮带线体2复位,X042,X042
DI,0,皮带线4定位检测,Location_Check1,2,PRO_AOI_IP_3,0,皮带线4定位检测,X043,X043
DI,0,皮带线4入口料盘检测,EntryPosition_Check1,3,PRO_AOI_IP_3,0,皮带线4入口料盘检测,X044,X044
DI,0,皮带线4出口料盘检测,ExitPosition_Check1,4,PRO_AOI_IP_3,0,皮带线4出口料盘检测,X045,X045
DI,0,皮带线5定位检测,Location_Check2,5,PRO_AOI_IP_3,0,皮带线5定位检测,X046,X046
DI,0,皮带线5入口料盘检测,EntryPosition_Check2,6,PRO_AOI_IP_3,0,皮带线5入口料盘检测,X047,X047
DI,0,皮带线5出口料盘检测,ExitPosition_Check2,7,PRO_AOI_IP_3,0,皮带线5出口料盘检测,X048,X048
DI,0,皮带线4入口定位检测,EntryLocation_Check1,2,PRO_AOI_IP_3,0,皮带线4入口定位检测,X043,X043
DI,0,皮带线4出口定位检测,ExitLocation_Check1,3,PRO_AOI_IP_3,0,皮带线4出口定位检测,X044,X044
DI,0,皮带线4出口料盘检测,ExitTray_Check1,4,PRO_AOI_IP_3,0,皮带线4出口料盘检测,X045,X045
DI,0,皮带线5定位检测,EntryLocation_Check2,5,PRO_AOI_IP_3,0,皮带线5定位检测,X046,X046
DI,0,皮带线5入口定位检测,ExitLocation_Check2,6,PRO_AOI_IP_3,0,皮带线5入口定位检测,X047,X047
DI,0,皮带线5出口定位检测,ExitTray_Check2,7,PRO_AOI_IP_3,0,皮带线5出口定位检测,X048,X048
DI,0,皮带线6定位检测,Location_Check3,8,PRO_AOI_IP_3,0,皮带线6定位检测,X049,X049
DI,0,皮带线6入口料盘检测,EntryPosition_Check3,9,PRO_AOI_IP_3,0,皮带线6入口料盘检测,X050,X050
DI,0,皮带线6中间位置料盘检测,MiddlePosition_Check3,10,PRO_AOI_IP_3,0,皮带线6中间位置料盘检测,X051,X051
DI,0,皮带线6出口料盘检测,ExitPosition_Check3,11,PRO_AOI_IP_3,0,皮带线6出口料盘检测,X052,X052
DI,0,皮带线6入口料盘检测,EntryTray_Check3,9,PRO_AOI_IP_3,0,皮带线6入口料盘检测,X050,X050
DI,0,皮带线6中间位置料盘检测,MiddleTray_Check3,10,PRO_AOI_IP_3,0,皮带线6中间位置料盘检测,X051,X051
DI,0,皮带线6出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_3,0,皮带线6出口料盘检测,X052,X052
DI,0,分盘装置2定位气缸上升端,SeparateDevice_Up,12,PRO_AOI_IP_3,0,分盘装置2定位气缸上升端,X053,X053
DI,0,分盘装置2定位气缸下降端,SeparateDevice_Down,13,PRO_AOI_IP_3,0,分盘装置2定位气缸下降端,X054,X054
DI,0,分盘装置1料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_3,0,分盘装置1料盘检测,X055,X055
......
......@@ -17,7 +17,11 @@ namespace OnlineStore.DeviceLibrary
{
public DischargeLine_Config Config;
public OutTrayLineBean TrayLine1 = null;
public OutTrayLineBean TrayLine2 = null;
internal LineTurnBean Line3Turn = null;
//皮带线3最后一盘料的位置
public int Line3LastTrayP = 0;
public DischargeLine(string cid, DischargeLine_Config config)
{
baseConfig = config;
......@@ -30,6 +34,10 @@ namespace OnlineStore.DeviceLibrary
UseAxis = false;
MoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-MoveInfo");
SecondMoveInfo = new LineMoveInfo(DeviceID, "出料皮带线-" + DeviceID + "-SecondMoveInfo");
int id = DeviceID % 100;
TrayLine1 = new OutTrayLineBean("皮带线-" + (id - 1) * 3+1, IO_Type.EntryLocation_Check1, IO_Type.ExitLocation_Check1, IO_Type.ExitTray_Check1,IO_Type.DLine_Run1, IO_Type.EntryTray_Check3, this);
TrayLine2 = new OutTrayLineBean("皮带线-" + (id - 1) * 3+2, IO_Type.EntryLocation_Check2, IO_Type.ExitLocation_Check2, IO_Type.ExitTray_Check2,IO_Type.DLine_Run2,IO_Type.MiddleTray_Check3,this);
Line3Turn = new LineTurnBean(DeviceID);
}
/// <summary>
......@@ -49,7 +57,6 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.HomeMoving;
LogInfo("开始原点返回: (重置灯状态,关闭所有皮带线,定位气缸下降 )开始");
MoveInfo.NewMove(LineMoveType.ReturnHome);
StopLineRun();
StartReset();
if ( isDebug)
{
......@@ -129,7 +136,11 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Busy;
MoveInfo.EndMove();
SecondMoveInfo.EndMove();
StopLineRun();
TrayLine1.StopRun();
TrayLine2.StopRun();
Line3Turn.StopLineRun();
LogInfo("停止运动:(定位气缸下降,皮带线停转 )开始 ");
CylinderMove(null, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down);
......@@ -193,12 +204,25 @@ namespace OnlineStore.DeviceLibrary
}
BusyMoveProcess();
//判断流水线打开了才可以运行
if(TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.OutStore))
{
TrayLine1.OutStoreProcess();
}
if (TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.OutStore))
{
TrayLine2.OutStoreProcess();
}
//判断流水线打开了才可以运行
if (runStatus.Equals(LineRunStatus.Runing) && NoAlarm())
{
//判断皮带线3出口是否有料
if (IOValue(IO_Type.ExitPosition_Check3).Equals(IO_VALUE.HIGH))
if (MoveInfo.MoveType.Equals(LineMoveType.None))
{
//皮带线3出口有料,分盘定位装置无料
if (IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.LOW))
{
//开始扫码然后送出料盘
//1.扫码,
......@@ -206,37 +230,40 @@ namespace OnlineStore.DeviceLibrary
//3.顶升或下降定位气缸
//皮带线3转动,分料皮带转动,
//等待料盘到达工位。
}
//皮带线3出口无料
else if (IOValue(IO_Type.ExitPosition_Check3).Equals(IO_VALUE.LOW) && LineRuning.Equals(false))
{
//判断是否需要入库
if (IOValue(IO_Type.ExitPosition_Check3).Equals(IO_VALUE.LOW) && LineRuning.Equals(false))
{
//皮带3入口或者中间有料盘,出口无料盘,转动皮带三
if ((IOValue(IO_Type.ExitPosition_Check3).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.MiddlePosition_Check3).Equals(IO_VALUE.HIGH)))
{
StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3);
StartOutStoreMove(new InOutParam());
}
}
}
else if (IOValue(IO_Type.EntryPosition_Check3).Equals(IO_VALUE.LOW) && LineRuning.Equals(false) && MoveInfo.MoveType.Equals(LineMoveType.None))
//判断皮带线3出口无料,皮带线无操作
if (MoveInfo.MoveType.Equals(LineMoveType.None) &&
TrayLine1.Line3CanRun &&
TrayLine2.Line3CanRun &&
IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.LOW) &&
Line3LastTrayP < 11)
{
if ((IOValue(IO_Type.ExitPosition_Check1).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.ExitPosition_Check1).Equals(IO_VALUE.HIGH)))
{
StartLineRun(IO_Type.DLine_Run1, IO_Type.Location_Check1);
}
//判断皮带三还有料盘,需要转动一个工位
LogInfo("皮带线3空闲,且流水线还有料盘,转动一个工位");
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3);
}
else if (IOValue(IO_Type.MiddlePosition_Check3).Equals(IO_VALUE.LOW) && LineRuning.Equals(false) && SecondMoveInfo.MoveType.Equals(LineMoveType.None))
{
if ((IOValue(IO_Type.ExitPosition_Check2).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.ExitPosition_Check2).Equals(IO_VALUE.HIGH)))
//皮带线3出口无料
if (TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None) &&
Line3Turn.InTurn.Equals(false) &&
TrayLine1.LastTrayPosition > 0 &&
TrayLine1.LastTrayPosition < 5 &&
IOValue(IO_Type.EntryTray_Check3).Equals(IO_VALUE.LOW))
{
StartLineRun(IO_Type.DLine_Run2, IO_Type.Location_Check2);
TrayLine1.LineStartTurn();
}
//皮带线3出口无料
if (TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None) &&
Line3Turn.InTurn.Equals(false) &&
TrayLine2.LastTrayPosition > 0 &&
TrayLine2.LastTrayPosition < 5 &&
IOValue(IO_Type.MiddleTray_Check3).Equals(IO_VALUE.LOW))
{
TrayLine2.LineStartTurn();
}
//皮带1皮带2先转动,到达位置后,皮带3再转动
}
IOTimeOutProcess();
......
......@@ -90,13 +90,9 @@ namespace OnlineStore.DeviceLibrary
case LineMoveType.ReturnHome:
ResetProcess();
break;
case LineMoveType.Reset:
ResetProcess();
break;
//case StoreMoveType.StopMove:
// StopMoveProcess();
// break;
default: break;
}
if (MoveInfo.MoveType == LineMoveType.InStore || this.SecondMoveInfo.MoveType == LineMoveType.InStore)
......@@ -311,7 +307,7 @@ namespace OnlineStore.DeviceLibrary
protected DateTime preRWTime = DateTime.Now;
protected void CheckWait(LineMoveInfo moveInfo)
internal void CheckWait(LineMoveInfo moveInfo)
{
List<WaitResultInfo> list = moveInfo.WaitList;
if (list.Count <= 0)
......
......@@ -37,7 +37,6 @@ namespace OnlineStore.DeviceLibrary
public Dictionary <int,FeedingEquip> FeedingEquipMap { get; set; }
public Dictionary<int, ProvidingEquip> ProvidingEquipMap { get; set; }
public Dictionary<int, DischargeLine> DisLineMap { get; set; }
public Dictionary<int ,EquipBase> AllEquipMap { get; set; }
/// <summary>
......@@ -123,19 +122,19 @@ namespace OnlineStore.DeviceLibrary
cioList = new List<string>(ioList);
string ids = ConfigAppSettings.GetValue(Setting_Init.DebugDeviceId);
// rfidList = new List<string>(DeviceConfig.ProRFIpMap.Values);
rfidList = new List<string>();
rfidList = new List<string>(DeviceConfig.ProRFIpMap.Values);
// rfidList = new List<string>();
if (IsDebug)
{
//rfidList = new List<string>() {
// "192.168.210.116","192.168.210.120","192.168.210.121"
//};
rfidList = new List<string>() {
RFIDManager.GetRFIP(103),
RFIDManager.GetRFIP(11),
RFIDManager.GetRFIP(12),
//rfidList = new List<string>() {
// RFIDManager.GetRFIP(103),
// RFIDManager.GetRFIP(11),
// RFIDManager.GetRFIP(12),
};
//};
try
{
cioList = new List<string>();
......@@ -163,7 +162,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveEquip equip = MoveEquipMap[id];
cioList.AddRange(equip.Config.IOIPList);
}else if (id.Equals(0))
}
else if (id.Equals(0))
{
cioList = new List<string>();
cioList.AddRange(ioList);
......@@ -171,7 +171,7 @@ namespace OnlineStore.DeviceLibrary
"192.168.101.22",
"192.168.101.23"
};
foreach(string s in removeList)
foreach (string s in removeList)
{
if (cioList.Contains(s))
{
......
......@@ -299,7 +299,7 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_01_UpDownCylinderDown))
{
MoveInfo.NextMoveStep(LineMoveStep.PO_02_UpDownCylinderDownWait);
OutLog("出库 "+MoveInfo.SLog+" : 上下气缸1下降后等待0.3秒再夹紧");
OutLog("出库 " + MoveInfo.SLog + " : 上下气缸1下降后等待0.3秒再夹紧");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
}
//只有当BOX可以进行出出料时,移栽物品,防止卡住
......@@ -312,9 +312,27 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_03_ClampCylinderSlack))
{
MoveInfo.NextMoveStep(LineMoveStep.PO_04_UpDownCylinderUp);
OutLog("出库 " + MoveInfo.SLog + " : 上下气缸上升");
OutLog("出库 " + MoveInfo.SLog + " : 上下气缸上升,同时出库皮带线开始出库准备");
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
UpdownUpMove();
int id = DeviceID % 100;
if (id.Equals(1))
{
LineManager.Line.DisLineMap[301].TrayLine1.StartOut(MoveInfo.MoveParam);
}
else if (id.Equals(2))
{
LineManager.Line.DisLineMap[301].TrayLine2.StartOut(MoveInfo.MoveParam);
}
else if (id.Equals(3))
{
LineManager.Line.DisLineMap[302].TrayLine1.StartOut(MoveInfo.MoveParam);
}
else if (id.Equals(4))
{
LineManager.Line.DisLineMap[302].TrayLine2.StartOut(MoveInfo.MoveParam);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_04_UpDownCylinderUp))
{
......
......@@ -68,6 +68,24 @@ namespace OnlineStore.DeviceLibrary
lastTime = DateTime.Now;
try
{
//判断是否还在连接
foreach(AIOBOX box in AIOMap.Values)
{
if (!box.IsConn)
{
if (IoIPLIst.Contains(box.IP).Equals(false))
{
LogUtil.info("IO模块【"+box.IP+"】已断开,加入集合等待重连");
IoIPLIst.Add(box.IP);
}
}
}
}catch(Exception ex)
{
LogUtil.error("AOI 判断是否需要重连 出错" + ex.ToString());
}
try
{
List<string> list = new List<string>(IoIPLIst);
if (list.Count > 0)
{
......@@ -559,8 +577,13 @@ namespace OnlineStore.DeviceLibrary
{
if (AIOMap.ContainsKey(ip))
{
if (AIOMap[ip].IsConn)
{
return true;
}return false;
}
return false;
}
return false;
}
}
}
......@@ -318,12 +318,19 @@ namespace OnlineStore.DeviceLibrary
WaitResultInfo wait = new WaitResultInfo();
wait.WaitType = WaitEnum.W102_FeedScanCode;
return wait;
}public static WaitResultInfo WaitFeedNoMove()
}
public static WaitResultInfo WaitFeedNoMove()
{
WaitResultInfo wait = new WaitResultInfo();
wait.WaitType = WaitEnum.W103_FeedNoMove;
return wait;
}
public static WaitResultInfo WaitDLineScanCode()
{
WaitResultInfo wait = new WaitResultInfo();
wait.WaitType = WaitEnum.W301_DLineScanCode;
return wait;
}
public string ToStr()
{
if (WaitType.Equals(WaitEnum.W001_AxisMove))
......@@ -389,6 +396,10 @@ namespace OnlineStore.DeviceLibrary
{
return "出料流水线可接收料盘";
}
else if (WaitType.Equals(WaitEnum.W301_DLineScanCode))
{
return "出料皮带线扫码";
}
else
{
return "Wait位置类型:WaitType=【" + WaitType + "】";
......@@ -508,6 +519,10 @@ namespace OnlineStore.DeviceLibrary
/// 等待出料流水线可以接收料盘
/// </summary>
internal static int W202_DLineCanOut = 202;
/// <summary>
///等待出料皮带线扫码结束
/// </summary>
internal static int W301_DLineScanCode = 301;
}
public enum LineMoveType
{
......
......@@ -933,6 +933,9 @@ namespace OnlineStore.DeviceLibrary
/// 前后气缸后退,等待4000
/// </summary>
PO_10_BeforeAfterCylinderAfter = 20010,
#endregion
......@@ -945,12 +948,79 @@ namespace OnlineStore.DeviceLibrary
/// 转动皮带开始运行
/// </summary>
DL_R_StartRun=30002,
/// <summary>
/// 皮带线检测处理
/// </summary>
DL_R_LineCheck=30100,
#region 皮带线3送出料盘处理
/// <summary>
/// 出料皮带线开始扫码送出料盘,等待1000后扫码
/// </summary>
DO_01_WaitTime = 30201,
/// <summary>
/// 出料皮带线开始扫码送出料盘,开始扫码,等待扫码结果,最多等待6000
/// </summary>
DO_02_ScanCode = 30202,
/// <summary>
/// 出料皮带线开始扫码送出料盘,根据二维码从服务器获取料盘尺寸
/// </summary>
DO_03_GetTraySize = 30203,
/// <summary>
/// 出料皮带线开始扫码送出料盘,上升或下降分盘定位气缸
/// </summary>
DO_04_SeparateDeviceMove = 30204,
/// <summary>
/// 出料皮带线开始扫码送出料盘,转动皮带线,同时转动分盘装置
/// </summary>
DO_05_LineRun = 30205,
/// <summary>
/// 出料皮带线开始扫码送出料盘,等待料盘到达分盘装置位置
/// </summary>
DO_06_Wait_SeparateDevice_Check = 30206,
/// <summary>
/// 出料皮带线开始扫码送出料盘,到达后再转动500
/// </summary>
DO_07_CRun = 30207,
#endregion
#region 皮带线12接收料盘并转动处理
/// <summary>
/// 皮带线12处理料盘:需要放入料盘,等待入口无料盘
/// </summary>
DLO_01_WaitEntryNoTray = 30301,
/// <summary>
/// 皮带线12处理料盘:需要放入料盘,等待出口无料盘
/// </summary>
DLO_02_WaitExitNoTray,
/// <summary>
/// 皮带线12处理料盘:入口出口都没有料盘,转动皮带线到入口定位亮
/// </summary>
DLO_03_LineRun,
/// <summary>
/// 皮带线12处理料盘:可以放入料盘,等待移栽放下料盘
/// </summary>
DLO_04_CanReviceTray,
/// <summary>
/// 皮带线12处理料盘:移栽放下料盘后更新为已放料盘
/// </summary>
DLO_05_TrayIsOk,
/// <summary>
/// 皮带线12处理料盘:皮带线转动到出口定位信号亮
/// </summary>
DLO_06_LineRun_OutLocation_Check,
/// <summary>
/// 皮带线12处理料盘:出库有料盘,继续转动一个工位,
/// </summary>
DLO_07_LineRun,
/// <summary>
/// 皮带线12处理料盘:出口无料盘,结束,
/// </summary>
DLO_08_ExitNoTray
#endregion
#endregion
}
......
......@@ -270,47 +270,49 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
public static string DLine_Reset = "DLine_Reset";
/// <summary>
/// DI,0,皮带线1定位检测,Location_Check1,2,PRO_AOI_IP_2,0,皮带线1定位检测,X023,X023
/// DI 0 皮带线1入口定位检测 EntryLocation_Check1 2 PRO_AOI_IP_2 0 皮带线1入口定位检测 X023 X023
/// </summary>
public static string Location_Check1 = "Location_Check1";
public static string EntryLocation_Check1 = "EntryLocation_Check1";
/// <summary>
/// DI,0,皮带线1入口料盘检测, EntryPosition_Check1,3, PRO_AOI_IP_2,0, 皮带线1入口料盘检测, X024, X024
/// DI 0 皮带线1出口定位检测 ExitLocation_Check1 3 PRO_AOI_IP_2 0 皮带线1出口定位检测 X024 X024
/// </summary>
public static string EntryPosition_Check1 = "EntryPosition_Check1";
public static string ExitLocation_Check1 = "ExitLocation_Check1";
/// <summary>
/// DI,0, 皮带线1出口料盘检测,ExitPosition_Check1,4,PRO_AOI_IP_2,0,皮带线1出口料盘检测,X025,X025
/// DI 0 皮带线1出口料盘检测 ExitTray_Check1 4 PRO_AOI_IP_2 0 皮带线1出口料盘检测 X025 X025
/// </summary>
public static string ExitPosition_Check1 = "ExitPosition_Check1";
public static string ExitTray_Check1 = "ExitTray_Check1";
/// <summary>
/// DI,0,皮带线2定位检测, Location_Check2,5, PRO_AOI_IP_2,0, 皮带线2定位检测, X026, X026
/// DI,0,皮带线2入口定位检测 EntryLocation_Check2 5 PRO_AOI_IP_2 0 皮带线2入口定位检测 X026 X026
/// </summary>
public static string Location_Check2 = "Location_Check2";
public static string EntryLocation_Check2 = "EntryLocation_Check2";
/// <summary>
/// DI 皮带线2入口料盘检测,EntryPosition_Check2,6,PRO_AOI_IP_2,0,皮带线2入口料盘检测,X027,X027
/// DI 皮带线2出口定位检测 ExitLocation_Check2 6 PRO_AOI_IP_2 0 皮带线2出口定位检测 X027 X027
/// </summary>
public static string EntryPosition_Check2 = " EntryPosition_Check2";
public static string ExitLocation_Check2 = " ExitLocation_Check2";
/// <summary>
/// DI 皮带线2出口料盘检测, ExitPosition_Check2,7, PRO_AOI_IP_2,0, 皮带线2出口料盘检测, X028, X028
/// DI 皮带线2出口料盘检测 ExitTray_Check2 7 PRO_AOI_IP_2 0 皮带线2出口料盘检测 X028 X028
/// </summary>
public static string ExitPosition_Check2 = "ExitPosition_Check2";
public static string ExitTray_Check2 = "ExitTray_Check2";
/// <summary>
/// DI 皮带线3定位检测,Location_Check3,8,PRO_AOI_IP_2,0,皮带线3定位检测,X029,X029
/// </summary>
public static string Location_Check3 = "Location_Check3";
/// <summary>
/// DI 皮带线3入口料盘检测, EntryPosition_Check3,9, PRO_AOI_IP_2,0, 皮带线3入口料盘检测, X030, X030
/// DI 皮带线3入口料盘检测, EntryTray_Check3,9, PRO_AOI_IP_2,0, 皮带线3入口料盘检测, X030, X030
/// </summary>
public static string EntryPosition_Check3 = " EntryPosition_Check3";
public static string EntryTray_Check3 = " EntryTray_Check3";
/// <summary>
/// DI 皮带线3中间位置料盘检测,MiddlePosition_Check3,10,PRO_AOI_IP_2,0,皮带线3中间位置料盘检测,X031,X031
/// DI 皮带线3中间位置料盘检测,MiddleTray_Check3,10,PRO_AOI_IP_2,0,皮带线3中间位置料盘检测,X031,X031
/// </summary>
public static string MiddlePosition_Check3 = "MiddlePosition_Check3";
public static string MiddleTray_Check3 = "MiddleTray_Check3";
/// <summary>
/// DI 皮带线3出口料盘检测, ExitPosition_Check3,11, PRO_AOI_IP_2,0, 皮带线3出口料盘检测, X032, X032
/// DI 皮带线3出口料盘检测, ExitTray_Check3,11, PRO_AOI_IP_2,0, 皮带线3出口料盘检测, X032, X032
/// </summary>
public static string ExitPosition_Check3 = "ExitPosition_Check3";
public static string ExitTray_Check3 = "ExitTray_Check3";
/// <summary>
/// DI 分盘装置1定位气缸上升端,SeparateDevice_Up,12,PRO_AOI_IP_2,0,分盘装置1定位气缸上升端,X033,X033
/// </summary>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!