Commit 62da7271 LN

皮带线扫码NG料功能修改。

1 个父辈 061c2b32
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
this.groupBox4 = new System.Windows.Forms.GroupBox(); this.groupBox4 = new System.Windows.Forms.GroupBox();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.groupBox5 = new System.Windows.Forms.GroupBox(); this.groupBox5 = new System.Windows.Forms.GroupBox();
this.btnScanCylinder = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.btnNgMove = new System.Windows.Forms.Button(); this.btnNgMove = new System.Windows.Forms.Button();
this.btnSRun = new System.Windows.Forms.Button(); this.btnSRun = new System.Windows.Forms.Button();
this.btnRun2 = new System.Windows.Forms.Button(); this.btnRun2 = new System.Windows.Forms.Button();
...@@ -423,6 +425,8 @@ ...@@ -423,6 +425,8 @@
// //
this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.groupBox5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox5.Controls.Add(this.btnScanCylinder);
this.groupBox5.Controls.Add(this.button1);
this.groupBox5.Controls.Add(this.btnNgMove); this.groupBox5.Controls.Add(this.btnNgMove);
this.groupBox5.Controls.Add(this.btnSRun); this.groupBox5.Controls.Add(this.btnSRun);
this.groupBox5.Controls.Add(this.btnRun2); this.groupBox5.Controls.Add(this.btnRun2);
...@@ -437,6 +441,32 @@ ...@@ -437,6 +441,32 @@
this.groupBox5.TabStop = false; this.groupBox5.TabStop = false;
this.groupBox5.Text = "IO操作测试"; this.groupBox5.Text = "IO操作测试";
// //
// btnScanCylinder
//
this.btnScanCylinder.BackColor = System.Drawing.Color.White;
this.btnScanCylinder.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnScanCylinder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnScanCylinder.Location = new System.Drawing.Point(140, 102);
this.btnScanCylinder.Name = "btnScanCylinder";
this.btnScanCylinder.Size = new System.Drawing.Size(128, 34);
this.btnScanCylinder.TabIndex = 266;
this.btnScanCylinder.Text = "扫码NG气缸前进";
this.btnScanCylinder.UseVisualStyleBackColor = false;
this.btnScanCylinder.Click += new System.EventHandler(this.btnScanCylinder_Click);
//
// button1
//
this.button1.BackColor = System.Drawing.Color.White;
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.Location = new System.Drawing.Point(8, 102);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(128, 34);
this.button1.TabIndex = 265;
this.button1.Text = "分盘装置电机停止";
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// btnNgMove // btnNgMove
// //
this.btnNgMove.BackColor = System.Drawing.Color.White; this.btnNgMove.BackColor = System.Drawing.Color.White;
...@@ -459,7 +489,7 @@ ...@@ -459,7 +489,7 @@
this.btnSRun.Name = "btnSRun"; this.btnSRun.Name = "btnSRun";
this.btnSRun.Size = new System.Drawing.Size(128, 34); this.btnSRun.Size = new System.Drawing.Size(128, 34);
this.btnSRun.TabIndex = 263; this.btnSRun.TabIndex = 263;
this.btnSRun.Text = "分盘装置电机驱动"; this.btnSRun.Text = "分盘装置电机正转";
this.btnSRun.UseVisualStyleBackColor = false; this.btnSRun.UseVisualStyleBackColor = false;
this.btnSRun.Click += new System.EventHandler(this.btnSRun_Click); this.btnSRun.Click += new System.EventHandler(this.btnSRun_Click);
// //
...@@ -749,6 +779,8 @@ ...@@ -749,6 +779,8 @@
private System.Windows.Forms.Button btnScan; private System.Windows.Forms.Button btnScan;
private System.Windows.Forms.Button btnLine2Test; private System.Windows.Forms.Button btnLine2Test;
private System.Windows.Forms.Button btnNgMove; private System.Windows.Forms.Button btnNgMove;
private System.Windows.Forms.Button btnScanCylinder;
private System.Windows.Forms.Button button1;
} }
} }
...@@ -350,7 +350,21 @@ namespace OnlineStore.AssemblyLine ...@@ -350,7 +350,21 @@ namespace OnlineStore.AssemblyLine
private void btnSRun_Click(object sender, EventArgs e) private void btnSRun_Click(object sender, EventArgs e)
{ {
BtnMove(btnSRun, "分盘装置电机驱动", "分盘装置电机停止", IO_Type.SeparateDevice_Run); LogUtil.info(equipBase.Name + "点击【" + btnSRun.Text + "】 ");
if (btnSRun.Text.Equals("分盘装置电机正转"))
{
equipBean.SeparateLineRun();
btnSRun.Text = "分盘装置电机反转";
btnSRun.BackColor = Color.Aqua;
}
else
{
equipBean.SeparateBackRun();
btnSRun.Text = "分盘装置电机正转";
btnSRun.BackColor = Color.SkyBlue;
}
//BtnMove(btnSRun, "分盘装置电机驱动", "分盘装置电机停止", IO_Type.SeparateDevice_Run);
} }
private void btnStrart_Click(object sender, EventArgs e) private void btnStrart_Click(object sender, EventArgs e)
...@@ -439,6 +453,30 @@ namespace OnlineStore.AssemblyLine ...@@ -439,6 +453,30 @@ namespace OnlineStore.AssemblyLine
MessageBox.Show(line2Name+"运转中,NG气缸不能动作"); MessageBox.Show(line2Name+"运转中,NG气缸不能动作");
} }
} }
private void button1_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "点击【" + button1.Text + "】 ");
equipBean.SeparateStopRun();
btnSRun.BackColor = Color.White;
}
private void btnScanCylinder_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "点击【" + btnScanCylinder.Text + "】 ");
if (btnScanCylinder.Text.Equals("扫码NG气缸前进"))
{
equipBean.ScanNgForward(null);
btnScanCylinder.Text = "扫码NG气缸后退";
btnScanCylinder.BackColor = Color.Aqua;
}
else
{
equipBean.ScanNgBack(null);
btnScanCylinder.Text = "扫码NG气缸前进";
btnScanCylinder.BackColor = Color.SkyBlue;
}
}
} }
} }
......
...@@ -784,7 +784,7 @@ ...@@ -784,7 +784,7 @@
this.lblwidth.AutoSize = true; this.lblwidth.AutoSize = true;
this.lblwidth.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lblwidth.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblwidth.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.lblwidth.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblwidth.Location = new System.Drawing.Point(417, 52); this.lblwidth.Location = new System.Drawing.Point(472, 52);
this.lblwidth.Name = "lblwidth"; this.lblwidth.Name = "lblwidth";
this.lblwidth.Size = new System.Drawing.Size(92, 17); this.lblwidth.Size = new System.Drawing.Size(92, 17);
this.lblwidth.TabIndex = 279; this.lblwidth.TabIndex = 279;
...@@ -806,7 +806,7 @@ ...@@ -806,7 +806,7 @@
this.lblAgvInfo.AutoSize = true; this.lblAgvInfo.AutoSize = true;
this.lblAgvInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lblAgvInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblAgvInfo.ImageAlign = System.Drawing.ContentAlignment.MiddleRight; this.lblAgvInfo.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblAgvInfo.Location = new System.Drawing.Point(417, 25); this.lblAgvInfo.Location = new System.Drawing.Point(472, 25);
this.lblAgvInfo.Name = "lblAgvInfo"; this.lblAgvInfo.Name = "lblAgvInfo";
this.lblAgvInfo.Size = new System.Drawing.Size(61, 17); this.lblAgvInfo.Size = new System.Drawing.Size(61, 17);
this.lblAgvInfo.TabIndex = 276; this.lblAgvInfo.TabIndex = 276;
......
...@@ -143,7 +143,7 @@ namespace OnlineStore.AssemblyLine ...@@ -143,7 +143,7 @@ namespace OnlineStore.AssemblyLine
{ {
lblInstoreList.Text = text; lblInstoreList.Text = text;
} }
lblMoveInfo.Text = "料架:" + equipBean.CurrShelfId + "\r\n" + equipBean.GetMoveStr(); lblMoveInfo.Text = equipBean.GetMoveStr();
lblwidth.Text = " "; lblwidth.Text = " ";
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -241,6 +241,14 @@ PRO,0,移栽上下轴流水线取放料详细位置P2,UpDownP2DetialList,0X0=800 ...@@ -241,6 +241,14 @@ PRO,0,移栽上下轴流水线取放料详细位置P2,UpDownP2DetialList,0X0=800
IO:连接速度加快。 IO:连接速度加快。
client.dll:删除不需要的日志。 client.dll:删除不需要的日志。
皮带线扫码NG料功能修改:
增加NG气缸和倒转IO,皮带线配置文件需要修改。
皮带线扫码NG修改,皮带线123NG时转动到接驳台并倒转。
皮带线456扫码提前一个工位,NG时转动到下一个工位并NG气缸推出。
皮带线456需要提前扫码,扫码后缓存。
......
...@@ -17,7 +17,7 @@ DI,0,皮带线3出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_2,0,皮带线3出口料盘检测,X ...@@ -17,7 +17,7 @@ DI,0,皮带线3出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_2,0,皮带线3出口料盘检测,X
DI,0,分盘装置1定位气缸上升端,SeparateDevice_Up,12,PRO_AOI_IP_2,0,分盘装置1定位气缸上升端,X033,X033 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_Down,13,PRO_AOI_IP_2,0,分盘装置1定位气缸下降端,X034,X034
DI,0,分盘装置1料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_2,0,分盘装置1料盘检测,X035,X035 DI,0,分盘装置1料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_2,0,分盘装置1料盘检测,X035,X035
,0,,,15,PRO_AOI_IP_2,0,,X036,X036 DI,0,扫码NG料气缸1后退端,ScanNGCylinder_Back,15,PRO_AOI_IP_2,0,扫码NG料气缸1后退端,X036,X036
,,,,,,,,, ,,,,,,,,,
DO,0,出料皮带线体1运行状态,DLine_RunStatus,0,PRO_AOI_IP_2,0,出料皮带线体1运行状态,Y021,Y021 DO,0,出料皮带线体1运行状态,DLine_RunStatus,0,PRO_AOI_IP_2,0,出料皮带线体1运行状态,Y021,Y021
DO,0,出料皮带线体1故障状态,DLine_RunAlarm,1,PRO_AOI_IP_2,0,出料皮带线体1故障状态,Y022,Y022 DO,0,出料皮带线体1故障状态,DLine_RunAlarm,1,PRO_AOI_IP_2,0,出料皮带线体1故障状态,Y022,Y022
...@@ -27,9 +27,9 @@ DO,0,出料皮带线3运转,DLine_Run3,4,PRO_AOI_IP_2,0,出料皮带线3运转,Y025,Y025 ...@@ -27,9 +27,9 @@ DO,0,出料皮带线3运转,DLine_Run3,4,PRO_AOI_IP_2,0,出料皮带线3运转,Y025,Y025
DO,0,分盘装置电机1驱动,SeparateDevice_Run,5,PRO_AOI_IP_2,0,分盘装置电机1驱动,Y026,Y026 DO,0,分盘装置电机1驱动,SeparateDevice_Run,5,PRO_AOI_IP_2,0,分盘装置电机1驱动,Y026,Y026
DO,0,分盘装置1定位气缸上升SOL,SeparateDevice_Up,6,PRO_AOI_IP_2,0,分盘装置1定位气缸上升SOL,Y027,Y027 DO,0,分盘装置1定位气缸上升SOL,SeparateDevice_Up,6,PRO_AOI_IP_2,0,分盘装置1定位气缸上升SOL,Y027,Y027
DO,0,分盘装置1定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_2,0,分盘装置1定位气缸下降SOL,Y028,Y028 DO,0,分盘装置1定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_2,0,分盘装置1定位气缸下降SOL,Y028,Y028
,0,,,8,PRO_AOI_IP_2,0,,Y029,Y029 DO,0,扫码NG料气缸1前进SOL,ScanNGCylinder_Forward,8,PRO_AOI_IP_2,0,扫码NG料气缸1前进SOL,Y029,Y029
,0,,,9,PRO_AOI_IP_2,0,,Y030,Y030 DO,0,扫码NG料气缸1后退SOL,ScanNGCylinder_Back,9,PRO_AOI_IP_2,0,扫码NG料气缸1后退SOL,Y030,Y030
,0,,,10,PRO_AOI_IP_2,0,,Y031,Y031 DO,0,分盘装置电机1驱动反转,SeparateDevice_BackRun,10,PRO_AOI_IP_2,0,分盘装置电机1驱动反转,Y031,Y031
,0,,,11,PRO_AOI_IP_2,0,,Y032,Y032 ,0,,,11,PRO_AOI_IP_2,0,,Y032,Y032
,0,,,12,PRO_AOI_IP_2,0,,Y033,Y033 ,0,,,12,PRO_AOI_IP_2,0,,Y033,Y033
,0,,,13,PRO_AOI_IP_2,0,,Y034,Y034 ,0,,,13,PRO_AOI_IP_2,0,,Y034,Y034
......
...@@ -17,7 +17,7 @@ DI,0,皮带线6出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_3,0,皮带线6出口料盘检测,X ...@@ -17,7 +17,7 @@ DI,0,皮带线6出口料盘检测,ExitTray_Check3,11,PRO_AOI_IP_3,0,皮带线6出口料盘检测,X
DI,0,分盘装置2定位气缸上升端,SeparateDevice_Up,12,PRO_AOI_IP_3,0,分盘装置2定位气缸上升端,X053,X053 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,分盘装置2定位气缸下降端,SeparateDevice_Down,13,PRO_AOI_IP_3,0,分盘装置2定位气缸下降端,X054,X054
DI,0,分盘装置2料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_3,0,分盘装置2料盘检测,X055,X055 DI,0,分盘装置2料盘检测,SeparateDevice_Check,14,PRO_AOI_IP_3,0,分盘装置2料盘检测,X055,X055
,0,,,15,PRO_AOI_IP_3,0,,X056,X056 DI,0,扫码NG料气缸2后退端,ScanNGCylinder_Back,15,PRO_AOI_IP_3,0,扫码NG料气缸2后退端,X056,X056
,,,,,,,,, ,,,,,,,,,
DO,0,出料皮带线体2运行状态,DLine_RunStatus,0,PRO_AOI_IP_3,0,出料皮带线体2运行状态,Y041,Y041 DO,0,出料皮带线体2运行状态,DLine_RunStatus,0,PRO_AOI_IP_3,0,出料皮带线体2运行状态,Y041,Y041
DO,0,出料皮带线体2故障状态,DLine_RunAlarm,1,PRO_AOI_IP_3,0,出料皮带线体2故障状态,Y042,Y042 DO,0,出料皮带线体2故障状态,DLine_RunAlarm,1,PRO_AOI_IP_3,0,出料皮带线体2故障状态,Y042,Y042
...@@ -27,8 +27,8 @@ DO,0,出料皮带线6运转,DLine_Run3,4,PRO_AOI_IP_3,0,出料皮带线6运转,Y045,Y045 ...@@ -27,8 +27,8 @@ DO,0,出料皮带线6运转,DLine_Run3,4,PRO_AOI_IP_3,0,出料皮带线6运转,Y045,Y045
DO,0,分盘装置电机2驱动,SeparateDevice_Run,5,PRO_AOI_IP_3,0,分盘装置电机2驱动,Y046,Y046 DO,0,分盘装置电机2驱动,SeparateDevice_Run,5,PRO_AOI_IP_3,0,分盘装置电机2驱动,Y046,Y046
DO,0,分盘装置2定位气缸上升SOL,SeparateDevice_Up,6,PRO_AOI_IP_3,0,分盘装置2定位气缸上升SOL,Y047,Y047 DO,0,分盘装置2定位气缸上升SOL,SeparateDevice_Up,6,PRO_AOI_IP_3,0,分盘装置2定位气缸上升SOL,Y047,Y047
DO,0,分盘装置2定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_3,0,分盘装置2定位气缸下降SOL,Y048,Y048 DO,0,分盘装置2定位气缸下降SOL,SeparateDevice_Down,7,PRO_AOI_IP_3,0,分盘装置2定位气缸下降SOL,Y048,Y048
,0,,,8,PRO_AOI_IP_3,0,,Y049,Y049 DO,0,扫码NG料气缸2前进SOL,ScanNGCylinder_Forward,8,PRO_AOI_IP_3,0,扫码NG料气缸2前进SOL,Y049,Y049
,0,,,9,PRO_AOI_IP_3,0,,Y050,Y050 DO,0,扫码NG料气缸2后退SOL,ScanNGCylinder_Back,9,PRO_AOI_IP_3,0,扫码NG料气缸2后退SOL,Y050,Y050
,0,,,10,PRO_AOI_IP_3,0,,Y051,Y051 ,0,,,10,PRO_AOI_IP_3,0,,Y051,Y051
,0,,,11,PRO_AOI_IP_3,0,,Y052,Y052 ,0,,,11,PRO_AOI_IP_3,0,,Y052,Y052
,0,,,12,PRO_AOI_IP_3,0,,Y053,Y053 ,0,,,12,PRO_AOI_IP_3,0,,Y053,Y053
......
...@@ -17,11 +17,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -17,11 +17,11 @@ namespace OnlineStore.DeviceLibrary
{ {
public int Line3MaxPosition = 13; public int Line3MaxPosition = 13;
public DischargeLine_Config Config; public DischargeLine_Config Config;
public OutTrayLineBean TrayLine1 = null; public OutTrayLineBean TrayLine1 = null;
public OutTrayLineBean TrayLine2 = null; public OutTrayLineBean TrayLine2 = null;
internal LineTurnBean Line3Turn = null; internal LineTurnBean Line3Turn = null;
//皮带线3最后一盘料的位置 //皮带线3最后一盘料的位置
public int Line3LastTrayP = 0; public int Line3LastTrayP = 0;
private string hengyiName = "横移皮带线1"; private string hengyiName = "横移皮带线1";
public DischargeLine(string cid, DischargeLine_Config config) public DischargeLine(string cid, DischargeLine_Config config)
{ {
...@@ -63,32 +63,32 @@ namespace OnlineStore.DeviceLibrary ...@@ -63,32 +63,32 @@ namespace OnlineStore.DeviceLibrary
/// 开始运行 /// 开始运行
/// </summary> /// </summary>
public override bool StartRun(bool isDebug = false) public override bool StartRun(bool isDebug = false)
{ {
if (CanStartRun().Equals(false)) if (CanStartRun().Equals(false))
{ {
return false ; return false;
} }
mainTimer.Stop(); mainTimer.Stop();
MoveInfo.EndMove(); MoveInfo.EndMove();
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
lineStatus = LineStatus.StoreOnline; lineStatus = LineStatus.StoreOnline;
runStatus = LineRunStatus.HomeMoving; runStatus = LineRunStatus.HomeMoving;
MoveInfo.NewMove(LineMoveType.ReturnHome); MoveInfo.NewMove(LineMoveType.ReturnHome);
StartReset(); StartReset();
if ( isDebug) if (isDebug)
{ {
mainTimer.Enabled = true; mainTimer.Enabled = true;
} }
return true ; return true;
} }
/// <summary> /// <summary>
/// 出料装置重置 /// 出料装置重置
/// </summary> /// </summary>
public override bool Reset() public override bool Reset()
{ {
StopMove(); StopMove();
runStatus = LineRunStatus.Reset; runStatus = LineRunStatus.Reset;
MoveInfo.NewMove(LineMoveType.Reset); MoveInfo.NewMove(LineMoveType.Reset);
StartReset(); StartReset();
...@@ -100,7 +100,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -100,7 +100,7 @@ namespace OnlineStore.DeviceLibrary
//复位时默认为有托盘 //复位时默认为有托盘
TrayLine1.LastTrayPosition = 1; TrayLine1.LastTrayPosition = 1;
TrayLine2.LastTrayPosition = 1; TrayLine2.LastTrayPosition = 1;
Line3LastTrayP = 1; Line3LastTrayP = 1;
ResetClearData(); ResetClearData();
lineStatus = LineStatus.ResetMove; lineStatus = LineStatus.ResetMove;
...@@ -116,17 +116,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -116,17 +116,18 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW); CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
if (DeviceID.Equals(302)) if (DeviceID.Equals(302))
{ {
LogInfo("后退NG气缸"); LogInfo("后退NG气缸,后退扫码NG气缸");
CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After); CylinderMove(MoveInfo, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
ScanNgBack(MoveInfo);
} }
if (IsDebug) if (IsDebug)
{ {
mainTimer.Start(); mainTimer.Start();
} }
isInPro = false; isInPro = false;
} }
/// <summary> /// <summary>
/// 复位处理 /// 复位处理
/// </summary> /// </summary>
...@@ -150,7 +151,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -150,7 +151,7 @@ namespace OnlineStore.DeviceLibrary
MoveEndS(); MoveEndS();
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
break; break;
default: break; default: break;
} }
} }
...@@ -160,14 +161,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -160,14 +161,14 @@ namespace OnlineStore.DeviceLibrary
/// 停止运动 /// 停止运动
/// </summary> /// </summary>
internal override void StopMove() internal override void StopMove()
{ {
runStatus = LineRunStatus.Busy; runStatus = LineRunStatus.Busy;
MoveInfo.EndMove(); MoveInfo.EndMove();
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
TrayLine1.StopRun(); TrayLine1.StopRun();
TrayLine2.StopRun(); TrayLine2.StopRun();
Line3Turn.StopLineRun(); Line3Turn.StopLineRun();
LogInfo("停止运动:(定位气缸下降,皮带线停转 )开始 "); LogInfo("停止运动:(定位气缸下降,皮带线停转 )开始 ");
CylinderMove(null, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down); CylinderMove(null, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down);
...@@ -175,9 +176,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -175,9 +176,10 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.DLine_Run1, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run1, IO_VALUE.LOW);
CheckAndMove(IO_Type.DLine_Run2, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run2, IO_VALUE.LOW);
CheckAndMove(IO_Type.DLine_Run3, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run3, IO_VALUE.LOW);
CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW); // CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
SeparateStopRun();
} }
/// <summary> /// <summary>
/// 停止运行 /// 停止运行
/// </summary> /// </summary>
...@@ -194,7 +196,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -194,7 +196,7 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.DLine_Run1, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run1, IO_VALUE.LOW);
CheckAndMove(IO_Type.DLine_Run2, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run2, IO_VALUE.LOW);
CheckAndMove(IO_Type.DLine_Run3, IO_VALUE.LOW); CheckAndMove(IO_Type.DLine_Run3, IO_VALUE.LOW);
CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW); // CheckAndMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
CheckAndMove(IO_Type.SeparateDevice_Up, IO_VALUE.LOW); CheckAndMove(IO_Type.SeparateDevice_Up, IO_VALUE.LOW);
CheckAndMove(IO_Type.SeparateDevice_Down, IO_VALUE.LOW); CheckAndMove(IO_Type.SeparateDevice_Down, IO_VALUE.LOW);
runStatus = LineRunStatus.Wait; runStatus = LineRunStatus.Wait;
...@@ -208,7 +210,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -208,7 +210,7 @@ namespace OnlineStore.DeviceLibrary
Thread.Sleep(500); Thread.Sleep(500);
if (IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.SuddenStop_BTN).Equals(IO_VALUE.LOW))
{ {
SetWarnMsg(Name + "收到急停信号"); SetWarnMsg(Name + "收到急停信号");
Alarm(LineAlarmType.SuddenStop); Alarm(LineAlarmType.SuddenStop);
return; return;
} }
...@@ -270,7 +272,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -270,7 +272,7 @@ namespace OnlineStore.DeviceLibrary
if ((runStatus.Equals(LineRunStatus.Runing) || runStatus.Equals(LineRunStatus.Busy))) if ((runStatus.Equals(LineRunStatus.Runing) || runStatus.Equals(LineRunStatus.Busy)))
{ {
TrayLine1.TimerPro(); TrayLine1.TimerPro();
if (NgISBack()) if (InStoreNgISBack())
{ {
TrayLine2.TimerPro(); TrayLine2.TimerPro();
} }
...@@ -279,10 +281,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -279,10 +281,10 @@ namespace OnlineStore.DeviceLibrary
//小皮带线常转 //小皮带线常转
if (IOValue(IO_Type.SeparateDevice_Run).Equals(IO_VALUE.LOW) && NoErrorAlarm()) if (IOValue(IO_Type.SeparateDevice_Run).Equals(IO_VALUE.LOW) && MoveInfo.MoveType.Equals(LineMoveType.None) && NoErrorAlarm())
{ {
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH); SeparateLineRun();
} }
} }
//判断红灯状态 //判断红灯状态
...@@ -294,9 +296,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -294,9 +296,9 @@ namespace OnlineStore.DeviceLibrary
{ {
IOMove(IO_Type.DLine_RunAlarm, IO_VALUE.HIGH); IOMove(IO_Type.DLine_RunAlarm, IO_VALUE.HIGH);
} }
} }
internal bool NgISBack() internal bool InStoreNgISBack()
{ {
if (DeviceID.Equals(302)) if (DeviceID.Equals(302))
{ {
...@@ -309,18 +311,26 @@ namespace OnlineStore.DeviceLibrary ...@@ -309,18 +311,26 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
return false ; return false;
}
internal bool ScanNgIsBack()
{
if (DeviceID.Equals(302) && IOValue(IO_Type.ScanNGCylinder_Back).Equals(IO_VALUE.LOW))
{
return false ;
}
return true ;
} }
internal bool Line3TurnIsStop() internal bool Line3TurnIsStop()
{ {
if (Line3Turn.InTurn.Equals(false)&& NoAlarm()) if (Line3Turn.InTurn.Equals(false) && NoAlarm())
{ {
if (IOValue(IO_Type.DLine_Run3).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.DLine_Run3).Equals(IO_VALUE.LOW))
{ {
if (Line3Turn.CanStart(800)) if (Line3Turn.CanStart(800))
{ {
return true; return true;
} }
} }
else else
{ {
...@@ -330,19 +340,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -330,19 +340,22 @@ namespace OnlineStore.DeviceLibrary
return false; return false;
} }
private void Line3TimerPro() private void Line3TimerPro()
{ {
//判断皮带线3出口无料,皮带线无操作 //判断皮带线3出口无料,皮带线无操作
if (Line3TurnIsStop() && if (
Line3Turn.CanStart()&& ScanNgIsBack() &&
Line3TurnIsStop() &&
Line3Turn.CanStart() &&
MoveInfo.MoveType.Equals(LineMoveType.None) && MoveInfo.MoveType.Equals(LineMoveType.None) &&
TrayLine1.Line3CanRun && TrayLine1.Line3CanRun &&
TrayLine2.Line3CanRun && TrayLine2.Line3CanRun &&
IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.LOW) && IOValue(IO_Type.ExitTray_Check3).Equals(IO_VALUE.LOW) &&
Line3HasTray()) Line3HasTray()
)
{ {
//判断皮带三还有料盘,需要转动一个工位 //判断皮带三还有料盘,需要转动一个工位
UpdateLastP(); UpdateLastP();
LogUtil.debug(hengyiName+"空闲,且流水线还有料盘,转动一个工位"); LogUtil.debug(hengyiName + "空闲,且流水线还有料盘,转动一个工位");
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess); Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
} }
...@@ -374,7 +387,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -374,7 +387,7 @@ namespace OnlineStore.DeviceLibrary
private bool Line3HasTray() private bool Line3HasTray()
{ {
if (Line3LastTrayP > 0 && Line3LastTrayP <= Line3MaxPosition*10) if (Line3LastTrayP > 0 && Line3LastTrayP <= Line3MaxPosition * 10)
{ {
return true; return true;
} }
...@@ -418,8 +431,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -418,8 +431,8 @@ namespace OnlineStore.DeviceLibrary
return; return;
} }
//若BOX和出料都没有在等待Io的过程中则此Io超时异常可能已经处理过 //若BOX和出料都没有在等待Io的过程中则此Io超时异常可能已经处理过
if (MoveInfo.MoveType.Equals(LineMoveType.None) && MoveInfo.IsInWait.Equals(false) if (MoveInfo.MoveType.Equals(LineMoveType.None) && MoveInfo.IsInWait.Equals(false)
&&TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None)&& TrayLine1.MoveInfo.IsInWait.Equals(false) && TrayLine1.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine1.MoveInfo.IsInWait.Equals(false)
&& TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine2.MoveInfo.IsInWait.Equals(false) && TrayLine2.MoveInfo.MoveType.Equals(LineMoveType.None) && TrayLine2.MoveInfo.IsInWait.Equals(false)
) )
{ {
...@@ -434,35 +447,109 @@ namespace OnlineStore.DeviceLibrary ...@@ -434,35 +447,109 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error("IOTimeOutProcess出错:", ex); LogUtil.error("IOTimeOutProcess出错:", ex);
} }
} }
public virtual string GetMoveStr() public override string GetMoveStr()
{ {
string msg = ""; string msg = "";
int tLength = 10; int tLength = 10;
msg += "runS:" + runStatus + "\n"; msg += "runS:" + runStatus + "\n";
msg += "lineS:"+ lineStatus + "\n"; msg += "lineS:" + lineStatus + "\n";
msg += "alarm: " + alarmType + "\n"; msg += "alarm: " + alarmType + "\n";
msg += "MoveT:"+ MoveInfo.MoveType + "\n"; msg += "MoveT:" + MoveInfo.MoveType + "\n";
msg += "MoveS:"+ MoveInfo.SLog + "\n"; msg += "MoveS:" + MoveInfo.SLog + "\n";
msg += "L1-M:"+ TrayLine1.MoveInfo.MoveType +" " + TrayLine1.MoveInfo.MoveStep + "\n"; msg += "L1-M:" + TrayLine1.MoveInfo.MoveType + " " + TrayLine1.MoveInfo.MoveStep + "\n";
msg += "L2-M:"+ TrayLine2.MoveInfo.MoveType + " " + TrayLine2.MoveInfo.MoveStep + "\n"; msg += "L2-M:" + TrayLine2.MoveInfo.MoveType + " " + TrayLine2.MoveInfo.MoveStep + "\n";
msg += "LastTP:"+ TrayLine1.LastTrayPosition+" " + TrayLine2.LastTrayPosition + " " + Line3LastTrayP + " " + "\n"; msg += "LastTP:" + TrayLine1.LastTrayPosition + " " + TrayLine2.LastTrayPosition + " " + Line3LastTrayP + " " + "\n";
msg += "LIsRun:"+ TrayLine1.IsInTurn() + " " + TrayLine2.IsInTurn() + " " +Line3Turn.InTurn + " " +"\n"; msg += "LIsRun:" + TrayLine1.IsInTurn() + " " + TrayLine2.IsInTurn() + " " + Line3Turn.InTurn + " " + "\n";
msg += "L3CanRun:"+ TrayLine1.Line3CanRun + " " + TrayLine2.Line3CanRun + " " + "\n"; msg += "L3CanRun:" + TrayLine1.Line3CanRun + " " + TrayLine2.Line3CanRun + " " + "\n";
msg += "LastWidth:" + LastWidth; msg += "LastWidth:" + LastWidth;
return msg; return msg;
} }
public override bool StartInStoreMove(InOutParam param) public override bool StartInStoreMove(InOutParam param)
{ {
return false; return false;
} }
protected override void InStoreProcess() protected override void InStoreProcess()
{ {
} }
protected override void CheckFixtureProcess() protected override void CheckFixtureProcess()
{ {
} }
public void SeparateLineRun(LineMoveInfo moveInfo = null)
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH));
}
if (DeviceID.Equals(301))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_BackRun, IO_VALUE.LOW));
}
IOMove(IO_Type.SeparateDevice_BackRun, IO_VALUE.LOW);
}
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
}
public void SeparateBackRun(LineMoveInfo moveInfo = null)
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_Run, IO_VALUE.LOW));
}
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
if (DeviceID.Equals(301))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_BackRun, IO_VALUE.HIGH));
}
IOMove(IO_Type.SeparateDevice_BackRun, IO_VALUE.HIGH);
}
}
public void SeparateStopRun(LineMoveInfo moveInfo = null)
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_Run, IO_VALUE.LOW));
}
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
if (DeviceID.Equals(301))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_BackRun, IO_VALUE.LOW));
}
IOMove(IO_Type.SeparateDevice_BackRun, IO_VALUE.LOW);
}
}
public void ScanNgForward(LineMoveInfo moveInfo = null)
{
if (DeviceID.Equals(302))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ScanNGCylinder_Back, IO_VALUE.LOW));
}
IOMove(IO_Type.ScanNGCylinder_Back, IO_VALUE.LOW);
IOMove(IO_Type.ScanNGCylinder_Forward, IO_VALUE.HIGH);
}
}
public void ScanNgBack(LineMoveInfo moveInfo)
{
if (DeviceID.Equals(302))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ScanNGCylinder_Back, IO_VALUE.HIGH));
}
IOMove(IO_Type.ScanNGCylinder_Forward, IO_VALUE.LOW);
IOMove(IO_Type.ScanNGCylinder_Back, IO_VALUE.HIGH);
}
}
} }
} }
...@@ -52,11 +52,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -52,11 +52,11 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Busy; runStatus = LineRunStatus.Busy;
MoveInfo.MoveParam = param; MoveInfo.MoveParam = param;
MoveInfo.NewMove(LineMoveType.OutStore); MoveInfo.NewMove(LineMoveType.OutStore);
LogInfo(hengyiName+ "出口有料,等待1000后扫码"); LogInfo(hengyiName+ "出口有料,NG气缸后退,等待1000后扫码");
MoveInfo.NextMoveStep(LineMoveStep.DO_01_WaitTime); MoveInfo.NextMoveStep(LineMoveStep.DO_01_WaitTime);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
ScanNgBack(MoveInfo);
LastCodeList = new List<string>(); LastCodeList = new List<string>();
// LastHeight = 0;
LastWidth = 0; LastWidth = 0;
scanCodeCount = 0; scanCodeCount = 0;
return true; return true;
...@@ -72,13 +72,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -72,13 +72,12 @@ namespace OnlineStore.DeviceLibrary
private int scanCodeCount=0; private int scanCodeCount=0;
private void ScanCode() private void ScanCode()
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_02_ScanCode); MoveInfo.NextMoveStep(LineMoveStep.DO_02_ScanCode);
List<string> cameraList = Config.GetCameraList(); List<string> cameraList = Config.GetCameraList();
if (cameraList.Count > 0) if (cameraList.Count > 0)
{ {
scanCodeCount++; scanCodeCount++;
LogInfo(hengyiName + "出口有料,开始第【"+scanCodeCount+"】次扫码"); LogInfo(hengyiName + "出口有料,开始第【"+scanCodeCount+"】次扫码,皮带线停止转动");
MoveInfo.OneWaitCanEndStep = true; MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitDLineScanCode()); MoveInfo.WaitList.Add(WaitResultInfo.WaitDLineScanCode());
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
...@@ -153,26 +152,45 @@ namespace OnlineStore.DeviceLibrary ...@@ -153,26 +152,45 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_03_GetTraySize)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_03_GetTraySize))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_04_SeparateMove); MoveInfo.NextMoveStep(LineMoveStep.DO_04_SUpDownMove);
if (LastWidth.Equals(7)) if (LastWidth.Equals(7))
{ {
LogInfo(hengyiName + "出口有料,料盘尺寸【" + LastWidth + "】上升分盘定位气缸"); LogInfo(hengyiName + "出口有料,料盘尺寸【" + LastWidth + "】上升分盘定位气缸");
CylinderMove(MoveInfo, IO_Type.SeparateDevice_Down, IO_Type.SeparateDevice_Up); CylinderMove(MoveInfo, IO_Type.SeparateDevice_Down, IO_Type.SeparateDevice_Up);
} }
else else if (LastWidth > 0)
{ {
LogInfo(hengyiName + "出口有料,料盘尺寸【" + LastWidth + "】下降分盘定位气缸"); LogInfo(hengyiName + "出口有料,料盘尺寸【" + LastWidth + "】下降分盘定位气缸");
CylinderMove(MoveInfo, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down); CylinderMove(MoveInfo, IO_Type.SeparateDevice_Up, IO_Type.SeparateDevice_Down);
} }
else
{
//NG料
if (TrayProcessCanStartLine())
{
MoveInfo.NextMoveStep(LineMoveStep.DO_11_NGToNextStation);
if (DeviceID.Equals(301))
{
LogInfo(hengyiName + "扫码NG料, 先转动NG料到扫码后一个工位,需要停止接驳台皮带线");
SeparateStopRun(MoveInfo);
}
else
{
LogInfo(hengyiName + "扫码NG料, 先转动NG料到扫码后一个工位");
}
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH));
}
}
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_04_SeparateMove)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_04_SUpDownMove))
{ {
if (TrayLine2.Line3CanRun && TrayLine1.Line3CanRun if (TrayProcessCanStartLine())
&& Line3TurnIsStop()
&& Line3Turn.CanStart())
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_05_LineRun); MoveInfo.NextMoveStep(LineMoveStep.DO_05_LineRun1);
LogInfo(hengyiName + "出口有料,转动皮带线,同时转动分盘装置"); LogInfo(hengyiName + "出口有料,转动皮带线到扫码后一个工位,同时转动分盘装置");
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH); IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess); Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
...@@ -180,18 +198,35 @@ namespace OnlineStore.DeviceLibrary ...@@ -180,18 +198,35 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH)); MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH));
} }
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_05_LineRun)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_05_LineRun1))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_06_SeparateCheck); if (DeviceID.Equals(301))
// Line3LastTrayP++; {
LogInfo(hengyiName + "出口有料,等待料盘到达分盘装置位置,最多等待60000"); //如果是301可以直接结束
MoveInfo.OneWaitCanEndStep = true; WaitSeparateCheck();
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(60000)); }
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_Check, IO_VALUE.HIGH)); else
{
//302需要再转一个工位
if (TrayProcessCanStartLine())
{
MoveInfo.NextMoveStep(LineMoveStep.DO_06_LineRun2);
LogInfo(hengyiName + "出口有料,转动皮带线到扫码后二个工位,同时转动分盘装置");
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
Line3Turn.StartLineRun(IO_Type.DLine_Run3, IO_Type.Location_Check3, Line3EndProcess);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Location_Check3, IO_VALUE.HIGH));
}
}
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_06_SeparateCheck)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_06_LineRun2))
{ {
MoveInfo.NextMoveStep(LineMoveStep.DO_07_CRun); WaitSeparateCheck();
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_07_SeparateCheck))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_08_CRun);
if (IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.SeparateDevice_Check).Equals(IO_VALUE.HIGH))
{ {
int robotIndex = 1; int robotIndex = 1;
...@@ -199,8 +234,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -199,8 +234,8 @@ namespace OnlineStore.DeviceLibrary
{ {
robotIndex = 2; robotIndex = 2;
} }
LogInfo(hengyiName + "出口有料,转动接驳台皮带线2000 , 收到SeparateDevice_Check信号,调用arriveRobotLocation="+ robotIndex); LogInfo(hengyiName + "出口有料,转动接驳台皮带线2000 , 收到SeparateDevice_Check信号,调用arriveRobotLocation=" + robotIndex);
SServerManager.arriveRobotLocation(Name, robotIndex); SServerManager.arriveRobotLocation(Name, robotIndex);
} }
else else
...@@ -209,13 +244,96 @@ namespace OnlineStore.DeviceLibrary ...@@ -209,13 +244,96 @@ namespace OnlineStore.DeviceLibrary
} }
IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH); IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_07_CRun)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_08_CRun))
{ {
MoveEndS(); MoveEndS();
// IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW); // IOMove(IO_Type.SeparateDevice_Run, IO_VALUE.LOW);
LogInfo(hengyiName + "出口有料,送料结束 "); LogInfo(hengyiName + "出口有料,送料结束 ");
} }
#region NG料处理
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_11_NGToNextStation))
{
//如果是301,接驳台皮带倒转
if (DeviceID.Equals(301))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_15_SeparateBackRun);
LogInfo(hengyiName + "扫码NG料,接驳台开始倒转");
SeparateBackRun(MoveInfo);
}
//如果是302,NG气缸前进
else
{
MoveInfo.NextMoveStep(LineMoveStep.DO_12_NGCylinderForward);
LogInfo(hengyiName + "扫码NG料,NG气缸前进");
ScanNgForward(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_12_NGCylinderForward))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_13_NGCylinderWait);
LogInfo(hengyiName + "扫码NG料,NG气缸等待1500后后退");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_13_NGCylinderWait))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_14_NGCylinderBack);
LogInfo(hengyiName + "扫码NG料,NG气缸后退");
ScanNgBack(MoveInfo);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_14_NGCylinderBack))
{
MoveEndS();
LogInfo(hengyiName + "扫码NG料结束,NG气缸已后退 ");
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_15_SeparateBackRun))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_16_SeparateBackRunWait);
LogInfo(hengyiName + "扫码NG料,接驳台反转等待3000");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_16_SeparateBackRunWait))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_17_SeparateStopRun);
LogInfo(hengyiName + "扫码NG料,接驳台停止反转");
SeparateStopRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_17_SeparateStopRun))
{
MoveInfo.NextMoveStep(LineMoveStep.DO_18_SeparateRun);
LogInfo(hengyiName + "扫码NG料,接驳台恢复正转");
SeparateLineRun(MoveInfo);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.DO_18_SeparateRun))
{
MoveEndS();
LogInfo(hengyiName + "扫码NG料结束,皮带线已正转 ");
}
#endregion
}
private void WaitSeparateCheck()
{
MoveInfo.NextMoveStep(LineMoveStep.DO_07_SeparateCheck);
// Line3LastTrayP++;
LogInfo(hengyiName + "出口有料,等待料盘到达分盘装置位置,最多等待60000");
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(60000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SeparateDevice_Check, IO_VALUE.HIGH));
}
private bool TrayProcessCanStartLine()
{
if (TrayLine2.Line3CanRun && TrayLine1.Line3CanRun
&& Line3TurnIsStop()
&& Line3Turn.CanStart()
&&ScanNgIsBack())
{
return true;
}
return false;
} }
#endregion #endregion
} }
......
...@@ -825,5 +825,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -825,5 +825,23 @@ namespace OnlineStore.DeviceLibrary
return true; return true;
} }
#endregion #endregion
private string lastcode = "";
public override string GetMoveStr()
{
string msg = "";
int tLength = 15;
msg += "料架:" + CurrShelfId + "\r\n";
msg += "上个托盘:" + preTrayNum + "\n";
msg += "当前托盘:" + currTrayNum + "\n";
msg += "runS: " + runStatus + "\n";
msg += "lineS: " + lineStatus + "\n";
msg += "alarm: " + alarmType + "\n";
msg += "MoveT:" + MoveInfo.MoveType + "\n";
msg += "MoveS :" + MoveInfo.SLog + "\n";
msg += "SMoveT:" + SecondMoveInfo.MoveType + "\n";
msg += "SMoveS:" + SecondMoveInfo.MoveStep + "\n";
msg += "" + LastWidth + "X" + LastHeight + "="+ lastcode + "";
return msg;
}
} }
} }
...@@ -728,6 +728,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -728,6 +728,7 @@ namespace OnlineStore.DeviceLibrary
{ {
//更新托盘条码信息 //更新托盘条码信息
string code = CodeManager.ProcessCode(LastCodeList); string code = CodeManager.ProcessCode(LastCodeList);
lastcode = code;
// TrayManager.UpdateTrayInfo(currTrayNum, true, 1, code, "", LastHeight, LastWidth); // TrayManager.UpdateTrayInfo(currTrayNum, true, 1, code, "", LastHeight, LastWidth);
if (code.Equals("")) if (code.Equals(""))
{ {
......
...@@ -987,20 +987,57 @@ namespace OnlineStore.DeviceLibrary ...@@ -987,20 +987,57 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 出料皮带线开始扫码送出料盘,上升或下降分盘定位气缸 /// 出料皮带线开始扫码送出料盘,上升或下降分盘定位气缸
/// </summary> /// </summary>
DO_04_SeparateMove = 30204, DO_04_SUpDownMove = 30204,
/// <summary> /// <summary>
/// 出料皮带线开始扫码送出料盘,转动皮带线,同时转动分盘装置 /// 出料皮带线开始扫码送出料盘,转动皮带线,同时转动分盘装置
/// </summary> /// </summary>
DO_05_LineRun = 30205, DO_05_LineRun1 = 30205,
/// <summary>
/// 出料皮带线转动第二个工位,同时转动分盘装置
/// </summary>
DO_06_LineRun2 = 30206,
/// <summary> /// <summary>
/// 出料皮带线开始扫码送出料盘,等待料盘到达分盘装置位置 /// 出料皮带线开始扫码送出料盘,等待料盘到达分盘装置位置
/// </summary> /// </summary>
DO_06_SeparateCheck = 30206, DO_07_SeparateCheck = 30207,
/// <summary> /// <summary>
/// 出料皮带线开始扫码送出料盘,到达后再转动500 /// 出料皮带线开始扫码送出料盘,到达后再转动500
/// </summary> /// </summary>
DO_07_CRun = 30207, DO_08_CRun = 30208,
/// <summary>
/// 出料皮带线获取尺寸NG,先转动料盘到扫码的下一个工位
/// </summary>
DO_11_NGToNextStation=30211,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸前进
/// </summary>
DO_12_NGCylinderForward = 30212,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸前进后等待1000ms
/// </summary>
DO_13_NGCylinderWait = 30213,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸后退
/// </summary>
DO_14_NGCylinderBack = 30214,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料到接驳台,接驳台皮带线反转
/// </summary>
DO_15_SeparateBackRun = 30215,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料到接驳台,反转等待3000
/// </summary>
DO_16_SeparateBackRunWait = 30216,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料已出,接驳台先停止反转
/// </summary>
DO_17_SeparateStopRun = 30217,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料已出,接驳台皮带线恢复正转
/// </summary>
DO_18_SeparateRun = 30218,
#endregion #endregion
#region 皮带线12接收料盘并转动处理 #region 皮带线12接收料盘并转动处理
......
...@@ -659,8 +659,23 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -659,8 +659,23 @@ namespace OnlineStore.LoadCSVLibrary
public static string SW_StopDown = "SW_StopDown"; public static string SW_StopDown = "SW_StopDown";
#endregion #endregion
/// <summary>
/// DO 0 扫码NG料气缸1前进SOL ScanNGCylinder_Forward 8 PRO_AOI_IP_2 0 扫码NG料气缸1前进SOL Y029 Y029
/// </summary>
public static string ScanNGCylinder_Forward = "ScanNGCylinder_Forward";
/// <summary>
/// DO 0 扫码NG料气缸1后退SOL ScanNGCylinder_Back 9 PRO_AOI_IP_2 0 扫码NG料气缸1后退SOL Y030 Y030
/// </summary>
public static string ScanNGCylinder_Back = "ScanNGCylinder_Back";
/// <summary>
/// DO 0 分盘装置电机1驱动反转 SeparateDevice_BackRun 10 PRO_AOI_IP_2 0 分盘装置电机1驱动反转 Y031 Y031
/// </summary>
public static string SeparateDevice_BackRun = "SeparateDevice_BackRun";
// public static string NextStopCheck = "NextStopCheck"; // public static string NextStopCheck = "NextStopCheck";
} }
public enum IO_VALUE public enum IO_VALUE
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!