Commit c1af307d LN

出入库

1 个父辈 b1431631
......@@ -58,7 +58,7 @@
<!--当前料架信息-料架号-->
<add key ="CurrShelfNum" value ="-1"/>
<!--当前料架信息-料架类型,0=空料架,1=入库料架,2=出库料架-->
<add key ="CurrShelfType" value ="0"/>
<add key ="CurrShelfType" value ="-1"/>
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
......
......@@ -163,6 +163,7 @@ namespace OnlineStore.DUOStore
this.tableLayoutPanel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel2.AutoScroll = true;
this.tableLayoutPanel2.ColumnCount = 1;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.Location = new System.Drawing.Point(5, 14);
......@@ -201,6 +202,7 @@ namespace OnlineStore.DUOStore
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.AutoScroll = true;
this.tableLayoutPanel1.ColumnCount = 1;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 14);
......@@ -1254,7 +1256,7 @@ namespace OnlineStore.DUOStore
this.lblMoveEquipInfo.AutoSize = true;
this.lblMoveEquipInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMoveEquipInfo.ForeColor = System.Drawing.Color.Blue;
this.lblMoveEquipInfo.Location = new System.Drawing.Point(270, 73);
this.lblMoveEquipInfo.Location = new System.Drawing.Point(142, 74);
this.lblMoveEquipInfo.Name = "lblMoveEquipInfo";
this.lblMoveEquipInfo.Size = new System.Drawing.Size(56, 17);
this.lblMoveEquipInfo.TabIndex = 272;
......@@ -1310,7 +1312,7 @@ namespace OnlineStore.DUOStore
this.lblThisSta.AutoSize = true;
this.lblThisSta.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblThisSta.ForeColor = System.Drawing.Color.Green;
this.lblThisSta.Location = new System.Drawing.Point(138, 72);
this.lblThisSta.Location = new System.Drawing.Point(10, 73);
this.lblThisSta.Name = "lblThisSta";
this.lblThisSta.Size = new System.Drawing.Size(65, 19);
this.lblThisSta.TabIndex = 216;
......@@ -1335,6 +1337,7 @@ namespace OnlineStore.DUOStore
this.Name = "FrmBox";
this.Opacity = 0D;
this.Text = "AC_SA_料仓";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.FrmTest_Load);
this.Shown += new System.EventHandler(this.FrmStoreBox_Shown);
this.groupBox4.ResumeLayout(false);
......
......@@ -32,14 +32,18 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmStore));
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.listView1 = new System.Windows.Forms.ListView();
this.chbSendShelfOut = new System.Windows.Forms.CheckBox();
this.lblServerMsg = new System.Windows.Forms.Label();
this.chbUseBuzzer = new System.Windows.Forms.CheckBox();
this.panel1 = new System.Windows.Forms.Panel();
this.chbInstoreEnd = new System.Windows.Forms.CheckBox();
this.chkDebug = new System.Windows.Forms.CheckBox();
this.lblMoveInfo = new System.Windows.Forms.Label();
this.chbAutoRun = new System.Windows.Forms.CheckBox();
this.btnCopyLog = new System.Windows.Forms.Button();
this.btnClearLog = new System.Windows.Forms.Button();
this.lblShelf = new System.Windows.Forms.Label();
this.chbUseBuzzer = new System.Windows.Forms.CheckBox();
this.chbOutstoreEnd = new System.Windows.Forms.CheckBox();
this.listView1 = new System.Windows.Forms.ListView();
this.lblServerMsg = new System.Windows.Forms.Label();
this.logBox = new System.Windows.Forms.RichTextBox();
this.lblWarnMsg = new System.Windows.Forms.Label();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
......@@ -70,6 +74,7 @@
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.panel1.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.contextMenuStrip1.SuspendLayout();
this.SuspendLayout();
......@@ -82,90 +87,63 @@
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
this.tabControl1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tabControl1.Location = new System.Drawing.Point(3, 50);
this.tabControl1.Location = new System.Drawing.Point(3, 61);
this.tabControl1.Multiline = true;
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(1303, 675);
this.tabControl1.Size = new System.Drawing.Size(1303, 663);
this.tabControl1.TabIndex = 0;
this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem);
this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
//
// tabPage1
//
this.tabPage1.Controls.Add(this.panel1);
this.tabPage1.Controls.Add(this.listView1);
this.tabPage1.Controls.Add(this.chbSendShelfOut);
this.tabPage1.Controls.Add(this.lblServerMsg);
this.tabPage1.Controls.Add(this.chbUseBuzzer);
this.tabPage1.Controls.Add(this.chkDebug);
this.tabPage1.Controls.Add(this.chbAutoRun);
this.tabPage1.Controls.Add(this.btnCopyLog);
this.tabPage1.Controls.Add(this.btnClearLog);
this.tabPage1.Controls.Add(this.logBox);
this.tabPage1.Location = new System.Drawing.Point(4, 29);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Size = new System.Drawing.Size(1295, 642);
this.tabPage1.Size = new System.Drawing.Size(1295, 630);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = " 日志信息 ";
this.tabPage1.UseVisualStyleBackColor = true;
//
// listView1
// panel1
//
this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.listView1.BackColor = System.Drawing.Color.White;
this.listView1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.listView1.FullRowSelect = true;
this.listView1.GridLines = true;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(3, 3);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(1110, 117);
this.listView1.TabIndex = 203;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// chbSendShelfOut
//
this.chbSendShelfOut.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chbSendShelfOut.AutoSize = true;
this.chbSendShelfOut.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbSendShelfOut.Location = new System.Drawing.Point(1132, 142);
this.chbSendShelfOut.Name = "chbSendShelfOut";
this.chbSendShelfOut.Size = new System.Drawing.Size(112, 24);
this.chbSendShelfOut.TabIndex = 202;
this.chbSendShelfOut.Text = "送出出料料架";
this.chbSendShelfOut.UseVisualStyleBackColor = true;
//
// lblServerMsg
//
this.lblServerMsg.AutoSize = true;
this.lblServerMsg.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblServerMsg.Location = new System.Drawing.Point(261, 20);
this.lblServerMsg.Name = "lblServerMsg";
this.lblServerMsg.Size = new System.Drawing.Size(0, 17);
this.lblServerMsg.TabIndex = 201;
//
// chbUseBuzzer
//
this.chbUseBuzzer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chbUseBuzzer.AutoSize = true;
this.chbUseBuzzer.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbUseBuzzer.Location = new System.Drawing.Point(1132, 56);
this.chbUseBuzzer.Name = "chbUseBuzzer";
this.chbUseBuzzer.Size = new System.Drawing.Size(98, 24);
this.chbUseBuzzer.TabIndex = 195;
this.chbUseBuzzer.Text = "启用蜂鸣器";
this.chbUseBuzzer.UseVisualStyleBackColor = true;
this.chbUseBuzzer.CheckedChanged += new System.EventHandler(this.chbUseBuzzer_CheckedChanged);
this.panel1.Controls.Add(this.chbInstoreEnd);
this.panel1.Controls.Add(this.chkDebug);
this.panel1.Controls.Add(this.lblMoveInfo);
this.panel1.Controls.Add(this.chbAutoRun);
this.panel1.Controls.Add(this.btnCopyLog);
this.panel1.Controls.Add(this.btnClearLog);
this.panel1.Controls.Add(this.lblShelf);
this.panel1.Controls.Add(this.chbUseBuzzer);
this.panel1.Controls.Add(this.chbOutstoreEnd);
this.panel1.Location = new System.Drawing.Point(1107, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(182, 623);
this.panel1.TabIndex = 271;
//
// chbInstoreEnd
//
this.chbInstoreEnd.AutoSize = true;
this.chbInstoreEnd.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbInstoreEnd.Location = new System.Drawing.Point(12, 241);
this.chbInstoreEnd.Name = "chbInstoreEnd";
this.chbInstoreEnd.Size = new System.Drawing.Size(140, 24);
this.chbInstoreEnd.TabIndex = 271;
this.chbInstoreEnd.Text = "入库完成送出料架";
this.chbInstoreEnd.UseVisualStyleBackColor = true;
this.chbInstoreEnd.CheckedChanged += new System.EventHandler(this.chbInstoreEnd_CheckedChanged);
//
// chkDebug
//
this.chkDebug.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkDebug.AutoSize = true;
this.chkDebug.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chkDebug.Location = new System.Drawing.Point(1132, 99);
this.chkDebug.Location = new System.Drawing.Point(12, 205);
this.chkDebug.Name = "chkDebug";
this.chkDebug.Size = new System.Drawing.Size(132, 24);
this.chkDebug.TabIndex = 194;
......@@ -173,12 +151,21 @@
this.chkDebug.UseVisualStyleBackColor = true;
this.chkDebug.CheckedChanged += new System.EventHandler(this.chkDebug_CheckedChanged);
//
// lblMoveInfo
//
this.lblMoveInfo.AutoSize = true;
this.lblMoveInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMoveInfo.Location = new System.Drawing.Point(12, 41);
this.lblMoveInfo.Name = "lblMoveInfo";
this.lblMoveInfo.Size = new System.Drawing.Size(56, 17);
this.lblMoveInfo.TabIndex = 270;
this.lblMoveInfo.Text = "运转状态";
//
// chbAutoRun
//
this.chbAutoRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chbAutoRun.AutoSize = true;
this.chbAutoRun.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbAutoRun.Location = new System.Drawing.Point(1132, 13);
this.chbAutoRun.Location = new System.Drawing.Point(12, 133);
this.chbAutoRun.Name = "chbAutoRun";
this.chbAutoRun.Size = new System.Drawing.Size(140, 24);
this.chbAutoRun.TabIndex = 94;
......@@ -188,10 +175,10 @@
//
// btnCopyLog
//
this.btnCopyLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCopyLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnCopyLog.BackColor = System.Drawing.Color.White;
this.btnCopyLog.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCopyLog.Location = new System.Drawing.Point(1145, 546);
this.btnCopyLog.Location = new System.Drawing.Point(12, 531);
this.btnCopyLog.Name = "btnCopyLog";
this.btnCopyLog.Size = new System.Drawing.Size(105, 35);
this.btnCopyLog.TabIndex = 191;
......@@ -201,10 +188,10 @@
//
// btnClearLog
//
this.btnClearLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnClearLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnClearLog.BackColor = System.Drawing.Color.White;
this.btnClearLog.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnClearLog.Location = new System.Drawing.Point(1145, 599);
this.btnClearLog.Location = new System.Drawing.Point(12, 572);
this.btnClearLog.Name = "btnClearLog";
this.btnClearLog.Size = new System.Drawing.Size(105, 35);
this.btnClearLog.TabIndex = 190;
......@@ -212,6 +199,66 @@
this.btnClearLog.UseVisualStyleBackColor = false;
this.btnClearLog.Click += new System.EventHandler(this.btnClearLog_Click);
//
// lblShelf
//
this.lblShelf.AutoSize = true;
this.lblShelf.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblShelf.Location = new System.Drawing.Point(12, 10);
this.lblShelf.Name = "lblShelf";
this.lblShelf.Size = new System.Drawing.Size(68, 17);
this.lblShelf.TabIndex = 204;
this.lblShelf.Text = "当前料架:";
//
// chbUseBuzzer
//
this.chbUseBuzzer.AutoSize = true;
this.chbUseBuzzer.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbUseBuzzer.Location = new System.Drawing.Point(12, 169);
this.chbUseBuzzer.Name = "chbUseBuzzer";
this.chbUseBuzzer.Size = new System.Drawing.Size(98, 24);
this.chbUseBuzzer.TabIndex = 195;
this.chbUseBuzzer.Text = "启用蜂鸣器";
this.chbUseBuzzer.UseVisualStyleBackColor = true;
this.chbUseBuzzer.CheckedChanged += new System.EventHandler(this.chbUseBuzzer_CheckedChanged);
//
// chbOutstoreEnd
//
this.chbOutstoreEnd.AutoSize = true;
this.chbOutstoreEnd.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbOutstoreEnd.Location = new System.Drawing.Point(12, 277);
this.chbOutstoreEnd.Name = "chbOutstoreEnd";
this.chbOutstoreEnd.Size = new System.Drawing.Size(140, 24);
this.chbOutstoreEnd.TabIndex = 202;
this.chbOutstoreEnd.Text = "出库完成送出料架";
this.chbOutstoreEnd.UseVisualStyleBackColor = true;
this.chbOutstoreEnd.CheckedChanged += new System.EventHandler(this.chbOutstoreEnd_CheckedChanged);
//
// listView1
//
this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listView1.BackColor = System.Drawing.Color.White;
this.listView1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.listView1.FullRowSelect = true;
this.listView1.GridLines = true;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(3, 3);
this.listView1.MultiSelect = false;
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(1098, 117);
this.listView1.TabIndex = 203;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// lblServerMsg
//
this.lblServerMsg.AutoSize = true;
this.lblServerMsg.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblServerMsg.Location = new System.Drawing.Point(261, 20);
this.lblServerMsg.Name = "lblServerMsg";
this.lblServerMsg.Size = new System.Drawing.Size(0, 17);
this.lblServerMsg.TabIndex = 201;
//
// logBox
//
this.logBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
......@@ -220,7 +267,7 @@
this.logBox.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.logBox.Location = new System.Drawing.Point(3, 126);
this.logBox.Name = "logBox";
this.logBox.Size = new System.Drawing.Size(1110, 512);
this.logBox.Size = new System.Drawing.Size(1098, 500);
this.logBox.TabIndex = 106;
this.logBox.Text = "";
this.logBox.VisibleChanged += new System.EventHandler(this.logBox_VisibleChanged);
......@@ -234,7 +281,7 @@
this.lblWarnMsg.ForeColor = System.Drawing.Color.Red;
this.lblWarnMsg.Location = new System.Drawing.Point(511, 4);
this.lblWarnMsg.Name = "lblWarnMsg";
this.lblWarnMsg.Size = new System.Drawing.Size(790, 72);
this.lblWarnMsg.Size = new System.Drawing.Size(793, 83);
this.lblWarnMsg.TabIndex = 96;
this.lblWarnMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
......@@ -450,6 +497,8 @@
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.contextMenuStrip1.ResumeLayout(false);
......@@ -496,8 +545,12 @@
private System.Windows.Forms.Label lblServerMsg;
private System.Windows.Forms.ToolStripMenuItem 扫码测试ToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator9;
private System.Windows.Forms.CheckBox chbSendShelfOut;
private System.Windows.Forms.CheckBox chbOutstoreEnd;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.Label lblShelf;
private System.Windows.Forms.Label lblMoveInfo;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.CheckBox chbInstoreEnd;
}
}
......@@ -57,9 +57,10 @@ namespace OnlineStore.DUOStore
chbAutoRun.Checked = store.UseBuzzer;
this.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
chbAutoRun.Checked = (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1));
// LogUtil.logBox = this.logBox;
// HideForm();
chbAutoRun.Checked = (ConfigAppSettings.GetIntValue(Setting_Init.App_AutoRun).Equals(1));
LoadListView();
chbInstoreEnd.Checked = store.InstoreEndSendShelf;
chbOutstoreEnd.Checked = store.OutstoreEndSendShelf;
LoadOk = true;
LogUtil.logBox = this.logBox;
this.timer1.Start();
......@@ -91,6 +92,8 @@ namespace OnlineStore.DUOStore
tabPageList.Add(lineTabPage);
tabControl1.Controls.Add(lineTabPage);
}
#region 料仓列表状态显示
private void LoadListView()
{
this.listView1.Columns.Clear();
......@@ -101,7 +104,7 @@ namespace OnlineStore.DUOStore
AddHealder("料盘信息", listView1.Size.Width - 110 - 130 - 50 - 90 - 10);
//AddHealder("BOX状态", listView1.Size.Width - 100 - 80 - 80 - 100 - 100 - 100 -40- 8);
AddRow(store, true);
AddRow(store, false );
AddRow(store.BoxMap[1], store.BoxMap[1].IsDebug);
AddRow(store.BoxMap[2], store.BoxMap[2].IsDebug);
}
......@@ -133,11 +136,11 @@ namespace OnlineStore.DUOStore
List<EquipBase> eqList = new List<EquipBase>(store.BoxMap.Values);
eqList.Insert(0, store);
foreach (EquipBase equip in store.BoxMap.Values)
{
if (i.Equals(0))
{
{
}
else
{
......@@ -202,7 +205,9 @@ namespace OnlineStore.DUOStore
this.listView1.Items[rowIndex].SubItems[subIndex].Text = value;
}
}
}
}
#endregion
/// <summary>
/// 隐藏窗口
/// </summary>
......@@ -451,10 +456,25 @@ namespace OnlineStore.DUOStore
if (!this.Visible)
{
return;
}
}
lblMoveInfo.Text = store.GetMoveStr();
string type = "";
if (store.CurrShelfType.Equals(0))
{
type = "空料架";
}
else if (store.CurrShelfType.Equals(1))
{
type = "入库料架";
}
else if (store.CurrShelfType.Equals(2))
{
type = "出库料架";
}
lblShelf.Text = "当前" + type + ":" + store.CurrShelfNum;
string msg = "";
foreach(BoxBean box in StoreManager.Store.BoxMap.Values)
foreach(BoxBean box in store.BoxMap.Values)
{
string s = box.WarnMsg;
if (!s.Equals(""))
......@@ -462,7 +482,7 @@ namespace OnlineStore.DUOStore
msg += box.Name+":"+s+ "\r" ;
}
}
UpdateListBox();
lblWarnMsg.Text = msg;
LogM();
}
......@@ -656,5 +676,36 @@ namespace OnlineStore.DUOStore
MessageBox.Show("未扫到二维码");
}
}
private void chbInstoreEnd_CheckedChanged(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
if (chbInstoreEnd.Checked.Equals(store.InstoreEndSendShelf))
{
return;
}
store.InstoreEndSendShelf = chbInstoreEnd.Checked;
LogUtil.info(store.Name + " 切换 入库完成送出料架=" + store.InstoreEndSendShelf);
}
private void chbOutstoreEnd_CheckedChanged(object sender, EventArgs e)
{
if (!LoadOk)
{
return;
}
if (chbOutstoreEnd.Checked.Equals(store.OutstoreEndSendShelf))
{
return;
}
store.OutstoreEndSendShelf = chbOutstoreEnd.Checked;
LogUtil.info(store.Name + " 切换 入库完成送出料架=" + store.OutstoreEndSendShelf);
}
}
}
......@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ACPackingStore")]
[assembly: AssemblyTitle("DUOStore")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ACPackingStore")]
[assembly: AssemblyProduct("DUOStore")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
......
......@@ -113,17 +113,17 @@ PRO,0,T2_旋转轴P3速度,MiddleAxis_P3Speed,500,,,,,,,,,,,,
PRO,0,T2_旋转轴P4速度,MiddleAxis_P4Speed,500,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料低点 P1,UpdownAxis_P1,5000,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料高点 P2,UpdownAxis_P2,5001,,,,,,,,,,,,
PRO,0,T3_升降轴料串取放料高点/待机点 P2,UpdownAxis_P2,5001,,,,,,,,,,,,
PRO,0,T3_升降轴左侧料仓取放料低点 P3,UpdownAxis_P3,5002,,,,,,,,,,,,
PRO,0,T3_升降轴左侧料仓取放料高点 P4,UpdownAxis_P4,5003,,,,,,,,,,,,
PRO,0,T3_升降轴右侧料仓取放料低点 P5,UpdownAxis_P5,5004,,,,,,,,,,,,
PRO,0,T3_升降轴右侧料仓取放料高点 P6,UpdownAxis_P6,5005,,,,,,,,,,,,
PRO,0,T2_升降轴P1速度,UpdownAxis_P1Speed,500,,,,,,,,,,,,
PRO,0,T2_升降轴P2速度,UpdownAxis_P2Speed,501,,,,,,,,,,,,
PRO,0,T2_升降轴P3速度,UpdownAxis_P3Speed,502,,,,,,,,,,,,
PRO,0,T2_升降轴P4速度,UpdownAxis_P4Speed,503,,,,,,,,,,,,
PRO,0,T2_升降轴P5速度,UpdownAxis_P5Speed,504,,,,,,,,,,,,
PRO,0,T2_升降轴P6速度,UpdownAxis_P6Speed,505,,,,,,,,,,,,
PRO,0,T2_升降轴P1速度/慢速度,UpdownAxis_P1Speed,500,,,,,,,,,,,,
PRO,0,T2_升降轴P2速度/快速度,UpdownAxis_P2Speed,501,,,,,,,,,,,,
PRO,0,T2_升降轴P3速度/慢速度,UpdownAxis_P3Speed,502,,,,,,,,,,,,
PRO,0,T2_升降轴P4速度/快速度,UpdownAxis_P4Speed,503,,,,,,,,,,,,
PRO,0,T2_升降轴P5速度/慢速度,UpdownAxis_P5Speed,504,,,,,,,,,,,,
PRO,0,T2_升降轴P6速度/快速度,UpdownAxis_P6Speed,505,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,,预警温度,WarnTemperate,80,,,,,,,,,,,,
......
......@@ -320,17 +320,17 @@ namespace OnlineStore.DeviceLibrary
}
}
private void AutoResetProcess()
{
try
{
bool noInStore = true;
bool noInStore = MoveInfo.MoveType.Equals(MoveType.None) && alarmType.Equals(AlarmType.None);
if (AutoInout.CurrInOutACount >= StoreManager.Config.Box_ResetACount && noInStore)
{
if (runStatus < StoreRunStatus.Runing || MoveInfo.MoveType == MoveType.InStore || MoveInfo.MoveType == MoveType.OutStore)
{
// LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,当时当前正在忙碌中暂不复位");
// LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,当时当前正在忙碌中暂不复位");
}
else
{
......@@ -339,14 +339,26 @@ namespace OnlineStore.DeviceLibrary
}
return;
}
else if (waitOutStoreList.Count > 0)
else if (waitInStoreParam != null && noInStore && IsDebug.Equals(false))
{
if (!StartInStoreMove(waitInStoreParam))
{
LogInfo("执行排队的入库【" + waitInStoreParam.ToStr() + "】失败");
}
else
{
LogInfo("执行排队的入库【" + waitInStoreParam.ToStr() + "】成功,清理缓存");
waitInStoreParam = null;
}
}
else if (waitOutStoreList.Count > 0 && noInStore && IsDebug.Equals(false))
{
InOutParam param = null;
bool result = waitOutStoreList.TryDequeue(out param);
if (result && param != null)
{
{
LogInfo("执行排队的出库【" + param.ToStr() + "】");
StartExecuctOut(param);
StartExecuctOut(param);
}
}
}
......@@ -367,10 +379,6 @@ namespace OnlineStore.DeviceLibrary
UpdownAxis.SuddenStop(true);
InoutAxis.SuddenStop(true);
ComAxis.SuddenStop(true);
//ACServerManager.SuddenStop(Config.Middle_Axis.DeviceName, Config.Middle_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.InOut_Axis.DeviceName, Config.InOut_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.Comp_Axis.DeviceName, Config.Comp_Axis.GetAxisValue());
CloseAllAxis();
LogInfo("StopMove");
isInPro = false;
......@@ -386,14 +394,6 @@ namespace OnlineStore.DeviceLibrary
CloseMultiAxis(IO_Type.Axis_Run, IO_Type.UpdownAxis_Break, new AxisBean[] { MiddleAxis, UpdownAxis, InoutAxis, ComAxis });
}
public string GetMoveStr()
{
string msg = "";
msg += "状态: " + runStatus + " " + storeStatus + "\n";
// msg += "lineS: " + storeStatus + "\n";
msg += "报警: " + alarmType + "\n";
msg += MoveInfo.MoveType + " " + MoveInfo.SLog + "\n";
return msg;
}
}
}
\ No newline at end of file
......@@ -14,12 +14,11 @@ namespace OnlineStore.DeviceLibrary
{
partial class BoxBean
{
public ConcurrentQueue<InOutParam> waitOutStoreList = new ConcurrentQueue<InOutParam>();
public InOutParam waitInStoreList = null;
public InOutParam waitInStoreParam = null;
#region 出入库结果验证
private bool AcInPosition(ConfigMoveAxis axis,int p)
private bool AcInPosition(ConfigMoveAxis axis, int p)
{
return ACServerManager.isInPosition(axis.DeviceName, axis.GetAxisValue(), p, axis.CanErrorCountMax);
......@@ -35,7 +34,7 @@ namespace OnlineStore.DeviceLibrary
else
{
InoutAxis.AbsMove(MoveInfo, InOut_P1, Config.InOutAxis_P1_Speed);
}
}
}
......@@ -52,13 +51,13 @@ namespace OnlineStore.DeviceLibrary
LogInfo(" IsReviceInPosId 正在入库中:" + MoveInfo.MoveParam.ToStr());
isReviceInfo = true;
}
if (!isReviceInfo && (waitInStoreList != null))
if (!isReviceInfo && (waitInStoreParam != null))
{
if (waitInStoreList.PosID.Equals(posId) && (!waitInStoreList.WareCode.Equals("")))
if (waitInStoreParam.PosID.Equals(posId) && (!waitInStoreParam.WareCode.Equals("")))
{
LogInfo(" IsReviceInPosId 已存在入库任务:" + waitInStoreList.ToStr());
isReviceInfo = true;
}
LogInfo(" IsReviceInPosId 已存在入库任务:" + waitInStoreParam.ToStr());
isReviceInfo = true;
}
}
}
catch (Exception ex)
......@@ -72,8 +71,8 @@ namespace OnlineStore.DeviceLibrary
#region 入库
private DateTime startInStoreTime = DateTime.Now;
public override bool StartInStoreMove(InOutParam param)
public override bool StartInStoreMove(InOutParam param)
{
startInStoreTime = DateTime.Now;
string posId = param != null ? param.PosID : "";
......@@ -82,13 +81,13 @@ namespace OnlineStore.DeviceLibrary
|| (!MoveInfo.MoveType.Equals(MoveType.None)))
{
LogUtil.error(Name + " 启动出库出错,忙碌或报警中 ,storeStatus=" + runStatus + ",MoveType=" + MoveInfo.MoveType + ",isInSuddenDown=" + isInSuddenDown + ",isNoAirCheck" + isNoAirCheck);
return false ;
return false;
}
if (!StoreManager.LoadInoutParam(param, MoveType.InStore, true, this))
{
LogUtil.error(Name + " 启动入库【" + param.ToStr() + "】出错,找不到库位信息");
return false ;
return false;
}
LogInfo(" 启动入库【" + param.ToStr() + "】 ");
runStatus = StoreRunStatus.Busy;
......@@ -105,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P1, Config.InOutAxis_P1_Speed);
return true;
}
protected override void InStoreProcess()
{
string outType = "入库:";
......@@ -125,7 +124,7 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.IsStep(StoreMoveStep.SI_01_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_02_AxisBack);
InOutStoreLog(outType+" 升降轴到P1,旋转轴到P1,压紧轴到P3");
InOutStoreLog(outType + " 升降轴到P1[" + moveP.UpDown_P1 + "],旋转轴到P1[" + moveP.Middle_P1 + "] ,压紧轴到P3["+ moveP.ComPress_P3 + "]");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
......@@ -133,20 +132,20 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SI_02_AxisBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_03_InoutToP2);
InOutStoreLog(outType+"进出轴到P2( 进料口取料点) ");
InOutStoreLog(outType + "进出轴到P2["+ moveP.InOut_P2 + "] ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_03_InoutToP2))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_GetReel );
InOutStoreLog(outType+"升降轴到P7( 进料口取料缓冲点)压紧轴到P2(压紧点) ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_04_GetReel);
InOutStoreLog(outType + "升降轴到P7 ["+ moveP.UpDown_P7 + "],压紧轴到P2 ["+ moveP.ComPress_P2 + "] ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P7, Config.UpDownAxis_P7_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_04_GetReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_InoutToP1 );
InOutStoreLog(outType+"进出轴返回P1 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_05_InoutToP1);
InOutStoreLog(outType + "进出轴返回P1 [" + moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_05_InoutToP1))
......@@ -154,14 +153,15 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveParam.TargetPosition.Equals(0))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_06_ToPos);
InOutStoreLog(outType+"移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) ");
InOutStoreLog(outType + "移动到库位点,旋转轴到P2( 库位点),升降轴到P3(库位入库前点) ");
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
}else
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_21_ToOutDoor);
InOutStoreLog(outType+"移动到出料口,旋转轴到P11,升降轴到P12高点 ");
MiddleAxis.AbsMove(MoveInfo,Config.MiddleAxis_P11, Config.MiddleAxis_P11_Speed);
InOutStoreLog(outType + "移动到出料口,旋转轴到P11["+ Config.MiddleAxis_P11 + "],升降轴到P12高点["+ Config.UpDownAxis_P12 + "] ");
MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P11, Config.MiddleAxis_P11_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P12, Config.UpDownAxis_P12_Speed);
}
}
......@@ -171,33 +171,33 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SI_06_ToPos))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_07_InoutToP3);
InOutStoreLog(outType+"进出轴到P3(库位取放料点) ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
InOutStoreLog(outType + "进出轴到P3(库位取放料点) ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_07_InoutToP3))
{
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_08_PutReel);
InOutStoreLog(outType+"升降轴到P4( 库位入料缓冲点)压紧轴到P3( 压紧前点) ");
InOutStoreLog(outType + "升降轴到P4["+ moveP.UpDown_P4 + "],压紧轴到P3["+ moveP.ComPress_P3 + "]");
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string posId = MoveInfo.MoveParam.PosID;
lastPosId = posId;
lastPosIdStatus = StoreStatus.InStoreEnd;
storeStatus = StoreStatus.InStoreEnd;
storeStatus = StoreStatus.InStoreEnd;
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P4, Config.UpDownAxis_P4_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_08_PutReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_09_InoutToP1);
InOutStoreLog(outType+"进出轴返回P1 ");
InOutBackToP1(moveP.InOut_P1);
OutDoorReelType = 2;
InOutStoreLog(outType + "进出轴返回P1 [" + moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1);
OutDoorReelType = 2;
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_09_InoutToP1)
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_10_GoBack);
InOutStoreLog(outType+"旋转轴,升降轴,压紧轴到待机点P1");
InOutStoreLog(outType + "升降轴到P1[" + moveP.UpDown_P1 + "],旋转轴到P1[" + moveP.Middle_P1 + "] ,压紧轴到P1[" + moveP.ComPress_P1 + "],");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
......@@ -219,35 +219,35 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SI_21_ToOutDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_22_OpenOutDoor);
InOutStoreLog(outType+"打开出料口门 ");
InOutStoreLog(outType + "打开出料口门 ");
CylinderMove(MoveInfo, IO_Type.OutDoor_Down, IO_Type.OutDoor_Up);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_22_OpenOutDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_23_InoutToP11 );
InOutStoreLog(outType+"进出轴到_P11-出料口取放料点 ");
MoveInfo.NextMoveStep(StoreMoveStep.SI_23_InoutToP11);
InOutStoreLog(outType + "进出轴到_P11-出料口取放料点 ["+ Config.InOutAxis_P11 + "] ");
InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P11, Config.InOutAxis_P11_Speed);
//关闭舱门
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_23_InoutToP11))
{
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_24_PurReel);
InOutStoreLog(outType+"升降轴到_P11-出料口-低点,压紧轴到压紧前点P3 ");
InOutStoreLog(outType + "升降轴到_P11-出料口-低点["+ Config.UpDownAxis_P11 + "],压紧轴到压紧前点P3["+ moveP.ComPress_P3 + "] ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo,Config.UpDownAxis_P11, Config.UpDownAxis_P11_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P11, Config.UpDownAxis_P11_Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_24_PurReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_25_InoutToP1);
InOutStoreLog(outType+"进出轴返回待机点P1 ");
InOutBackToP1(moveP.InOut_P1);
InOutStoreLog(outType + "进出轴返回P1 ["+ moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1);
OutDoorReelType = 1;
}
else if (MoveInfo.MoveStep == StoreMoveStep.SI_25_InoutToP1)
else if (MoveInfo.IsStep(StoreMoveStep.SI_25_InoutToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_26_GoBack);
InOutStoreLog(outType+"升降轴,旋转轴,压紧轴返回P1,关闭出料口门");
InOutStoreLog(outType + "升降轴到P1[" + moveP.UpDown_P1 + "],旋转轴到P1[" + moveP.Middle_P1 + "] ,压紧轴到P1[" + moveP.ComPress_P1 + "],关闭出料口门");
CylinderMove(MoveInfo, IO_Type.OutDoor_Up, IO_Type.OutDoor_Down);
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
......@@ -268,21 +268,25 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " 入库,MoveInfo.MoveStep=" + MoveInfo.MoveStep + ",没有对应的处理!");
}
}
#endregion
#region 出库
private DateTime startOutStoreTime = DateTime.Now;
private DateTime startOutStoreTime = DateTime.Now;
private void StartExecuctOut(InOutParam param)
{
bool result = false;
if (StoreManager.Store.CanOut())
{
result = StartOutStoreMove(param);
}
bool result = StartOutStoreMove(param);
if (!result)
{
LogInfo(" 执行出库【" + param.ToStr() + "】失败,加入等待队列");
waitOutStoreList.Enqueue(param);
}
}
}
public override bool StartOutStoreMove(InOutParam param)
{
......@@ -296,13 +300,13 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " 启动出库【" + param.ToStr() + "】失败,忙碌或报警中 ,storeStatus:" + runStatus + ",MoveType:" + MoveInfo.MoveType + ",isInSuddenDown:" + isInSuddenDown + ",isNoAirCheck:" + isNoAirCheck);
return false;
}
if (!StoreManager.LoadInoutParam(param,MoveType.OutStore, false, this))
if (!StoreManager.LoadInoutParam(param, MoveType.OutStore, false, this))
{
LogUtil.error(Name + " 启动出库【" + param.ToStr() + "】出错,找不到库位信息");
return false;
}
param.TargetBox = ID;
storeStatus = StoreStatus.OutStoreExecute;
runStatus = StoreRunStatus.Busy;
param.moveType = MoveType.OutStore;
......@@ -310,11 +314,11 @@ namespace OnlineStore.DeviceLibrary
LogInfo("启动出库【" + param.ToStr() + "】 ");
//出库前shelfPosID需要固定,出库时根据rfid判断是否需要出入料架
MoveInfo.NextMoveStep(StoreMoveStep.SO_01_InoutBack);
InOutStoreLog("出库 " + MoveInfo.SLog + ":进出轴到P1 开始");
InOutStoreLog("出库 :进出轴到P1 开始");
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
return true;
}
protected override void OutStoreProcess()
{
string outType = "出库:";
......@@ -331,31 +335,31 @@ namespace OnlineStore.DeviceLibrary
{
return;
}
if (MoveInfo.MoveStep == StoreMoveStep.SO_01_InoutBack)
if (MoveInfo.IsStep(StoreMoveStep.SO_01_InoutBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_02_ToPosition);
InOutStoreLog(outType+"压紧轴到压紧前点P3 ,旋转轴到库位点P2,升降轴到P5(库位出库前点) ");
InOutStoreLog(outType + "压紧轴到压紧前点P3["+ moveP.ComPress_P3 + "] ,旋转轴到库位点P2["+ moveP.Middle_P2 + "],升降轴到P5 ["+ moveP.UpDown_P5 + "] ");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
MiddleAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, MoveInfo.MoveParam.MoveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P5, Config.UpDownAxis_P5_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_02_ToPosition)
else if (MoveInfo.IsStep(StoreMoveStep.SO_02_ToPosition))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_03_InoutToP3);
InOutStoreLog(outType+" 进出轴至P3(库位取放料点) [" + moveP.InOut_P3 + "] ");
InOutStoreLog(outType + " 进出轴至P3 [" + moveP.InOut_P3 + "] ");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P3, Config.InOutAxis_P3_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_03_InoutToP3)
else if (MoveInfo.IsStep(StoreMoveStep.SO_03_InoutToP3))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_04_GetReel);
InOutStoreLog(outType+"升降轴到P6,压紧轴到P2(压紧点) ");
InOutStoreLog(outType + "升降轴到P6["+ moveP.UpDown_P6 + "],压紧轴到P2["+moveP.ComPress_P2+"]");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P2, Config.CompAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P6, Config.UpDownAxis_P6_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_04_GetReel)
else if (MoveInfo.IsStep(StoreMoveStep.SO_04_GetReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_05_InoutBack);
InOutStoreLog(outType+"进出轴返回P1(待机点) ");
InOutStoreLog(outType + "进出轴返回P1["+ moveP.InOut_P1 + "]");
InOutBackToP1(moveP.InOut_P1);
//把库位的物品放到取到叉子上之后是出仓完成
string posId = MoveInfo.MoveParam.PosID;
......@@ -364,57 +368,86 @@ namespace OnlineStore.DeviceLibrary
storeStatus = StoreStatus.OutStoreBoxEnd;
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_05_InoutBack)
else if (MoveInfo.IsStep(StoreMoveStep.SO_05_InoutBack))
{
if (MoveInfo.MoveParam.TargetPosition.Equals(0))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_06_ToDoor);
InOutStoreLog(outType+"旋转轴 至P2( 库位点)升降轴到P3(库位入库前点) ");
InOutStoreLog(outType + "旋转轴 至P2["+ moveP.Middle_P2 + "],升降轴到P3"+ moveP.UpDown_P3 + " ");
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P2, Config.MiddleAxis_P2_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P3, Config.UpDownAxis_P3_Speed);
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_21_ToOutDoor);
InOutStoreLog(outType+"移动到出料口,旋转轴到P11,升降轴到P12高点 ");
InOutStoreLog(outType + "移动到出料口,旋转轴到P11["+ Config.MiddleAxis_P11 + "],升降轴到P12高点["+Config.UpDownAxis_P12 + "] ");
MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P11, Config.MiddleAxis_P11_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P12, Config.UpDownAxis_P12_Speed);
}
}
#region 批量出料,到料串
else if (MoveInfo.MoveStep == StoreMoveStep.SO_06_ToDoor)
else if (MoveInfo.IsStep(StoreMoveStep.SO_06_ToDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_07_InoutToP2);
InOutStoreLog(outType+"进出轴到P2 ");
InOutStoreLog(outType + "进出轴到P2 ["+ moveP.InOut_P2 + "]");
InoutAxis.AbsMove(MoveInfo, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_InoutToP2)
else if (MoveInfo.IsStep(StoreMoveStep.SO_07_InoutToP2))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_PutReel);
InOutStoreLog(outType+"放下物品 升降轴至P1,压紧轴到P3 ");
InOutStoreLog(outType + "放下物品 升降轴至P1["+ moveP.UpDown_P1 + "],压紧轴到P3 ["+ moveP.ComPress_P3 + "]");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_PutReel)
else if (MoveInfo.IsStep(StoreMoveStep.SO_08_PutReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_09_InoutBack);
InOutStoreLog(outType+"进出轴返回P1");
InOutStoreLog(outType + "进出轴返回P1["+ moveP.InOut_P1 + "]");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_09_InoutBack)
else if (MoveInfo.IsStep(StoreMoveStep.SO_09_InoutBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_10_GoBack);
InOutStoreLog(outType+"升降轴,旋转轴到待机点P1 ");
InOutStoreLog(outType + "升降轴到P1["+ moveP.UpDown_P1 + "],旋转轴到P1["+ moveP.Middle_P1 + "] ,压紧轴到P1["+ moveP.ComPress_P1 + "] ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_10_GoBack)
else if (MoveInfo.IsStep(StoreMoveStep.SO_10_GoBack))
{
if (StoreManager.Store.MoveInfo.MoveType.Equals(MoveType.OutStore) && StoreManager.Store.MoveInfo.MoveStep.Equals(StoreMoveStep.LO_09_WaitOut))
{
bool result = StoreManager.Store.StartTrayOut(MoveInfo.MoveParam);
if (result)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_11_WaitTrayGo);
InOutStoreLog(outType + "等待提升机构拿走料盘 ");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.InDoor_Check,IO_VALUE.LOW));
ClearTimeoutAlarm("提升机构夹爪开始取料");
ClearTimeoutAlarm("提升机构夹爪可以取料");
}
else if (MoveInfo.IsTimeOut(60))
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 等待 提升机构夹爪开始取料 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
LogUtil.error(WarnMsg, ID * 1000 + 30);
Alarm(AlarmType.IoSingleTimeOut);
}
}
else if (MoveInfo.IsTimeOut(60))
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 等待 提升机构夹爪可以取料 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
LogUtil.error(WarnMsg, ID * 1000 + 30);
Alarm(AlarmType.IoSingleTimeOut);
}
}
else if (MoveInfo.IsStep(StoreMoveStep.SO_11_WaitTrayGo))
{
TimeSpan span = DateTime.Now - startOutStoreTime;
string posId = MoveInfo.MoveParam.PosID;
string posId = MoveInfo.MoveParam.PosID;
LogUtil.info(Name + " 【" + posId + "】 出库结束,耗时【" + FormUtil.GetSpanStr(span) + "】!");
MoveEndP();
......@@ -428,20 +461,20 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SO_21_ToOutDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_22_OpenOutDoor);
InOutStoreLog(outType+"打开出料口门 ");
InOutStoreLog(outType + "打开出料口门 ");
CylinderMove(MoveInfo, IO_Type.OutDoor_Down, IO_Type.OutDoor_Up);
}
else if (MoveInfo.IsStep(StoreMoveStep.SO_22_OpenOutDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_23_InoutToP11);
InOutStoreLog(outType+"进出轴到_P11-出料口取放料点 ");
InOutStoreLog(outType + "进出轴到_P11-出料口取放料点 ["+ Config.InOutAxis_P11 + "] ");
InoutAxis.AbsMove(MoveInfo, Config.InOutAxis_P11, Config.InOutAxis_P11_Speed);
//关闭舱门
}
else if (MoveInfo.IsStep(StoreMoveStep.SO_23_InoutToP11))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_24_PurReel);
InOutStoreLog(outType+"升降轴到_P11-出料口-低点,压紧轴到压紧前点P3 ");
InOutStoreLog(outType + "升降轴到_P11-出料口-低点["+ Config.UpDownAxis_P11 + "],压紧轴到压紧前点P3 ["+ moveP.ComPress_P3 + "]");
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P3, Config.CompAxis_P3_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P11, Config.UpDownAxis_P11_Speed);
......@@ -449,13 +482,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SO_24_PurReel))
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_25_InoutToP1);
InOutStoreLog(outType+"进出轴返回待机点P1 ");
InOutStoreLog(outType + "进出轴返回待机点P1 ["+ moveP.InOut_P1 + "] ");
InOutBackToP1(moveP.InOut_P1);
}
else if (MoveInfo.MoveStep == StoreMoveStep.SO_25_InoutToP1)
{
MoveInfo.NextMoveStep(StoreMoveStep.SO_26_GoBack);
InOutStoreLog(outType+"升降轴,旋转轴,压紧轴返回P1,关闭出料口门");
InOutStoreLog(outType + "升降轴到P1["+ moveP.UpDown_P1 + "],旋转轴到P1["+ moveP.Middle_P1 + "],压紧轴到P1["+ moveP.ComPress_P1 + "],关闭出料口门");
CylinderMove(MoveInfo, IO_Type.OutDoor_Up, IO_Type.OutDoor_Down);
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
......@@ -464,13 +497,13 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.SO_26_GoBack))
{
TimeSpan span = DateTime.Now - startInStoreTime;
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosID : "";
LogUtil.info(Name + " 【" + posId + "】 单盘出库结束,耗时【" + FormUtil.GetSpanStr(span) + "】!");
MoveEndP();
AutoInout.InOutEndProcess(this, MoveType.OutStore);
}
#endregion
else
{
......
......@@ -210,13 +210,13 @@ namespace OnlineStore.DeviceLibrary
string[] plateHArray = data[ParamDefine.plateH].Split(splitChar);
bool urgentReel = FormUtil.GetBoolData(data, ParamDefine.urgentReel);
bool cutReel = FormUtil.GetBoolData(data, ParamDefine.cutReel);
bool smallReel = FormUtil.GetBoolData(data, ParamDefine.smallReel);
string rfid = data.ContainsKey(ParamDefine.rfid) ? data[ParamDefine.rfid] : "";
int rfidLoc = FormUtil.GetIntData(data, ParamDefine.rfidLoc);
string barcode = data.ContainsKey(ParamDefine.barcode) ? data[ParamDefine.barcode] : "";
string realRfid = data.ContainsKey(ParamDefine.realRfid) ? data[ParamDefine.realRfid] : "";
int taskCount = FormUtil.GetIntData(data, ParamDefine.taskCount, 0);
//bool cutReel = FormUtil.GetBoolData(data, ParamDefine.cutReel);
//bool smallReel = FormUtil.GetBoolData(data, ParamDefine.smallReel);
//string rfid = data.ContainsKey(ParamDefine.rfid) ? data[ParamDefine.rfid] : "";
//int rfidLoc = FormUtil.GetIntData(data, ParamDefine.rfidLoc);
string barcode = data.ContainsKey(ParamDefine.barcode) ? data[ParamDefine.barcode] : "";
//string realRfid = data.ContainsKey(ParamDefine.realRfid) ? data[ParamDefine.realRfid] : "";
//int taskCount = FormUtil.GetIntData(data, ParamDefine.taskCount, 0);
//urgentReel: true 表示紧急料,需要出到料串上
//cutReel: true 表示分盘料,需要出到料串上
......@@ -232,8 +232,8 @@ namespace OnlineStore.DeviceLibrary
{
index++;
int plateW =Convert.ToInt32( plateWArray[index]);
int plateH = Convert.ToInt32(plateHArray[index]);
InOutParam inoutParam = new InOutParam(barcode, posId, plateW, plateH);
int plateH = Convert.ToInt32(plateHArray[index]);
InOutParam inoutParam = new InOutParam(MoveType.OutStore, barcode, posId, plateW, plateH, (urgentReel ? 1 : 0));
//根据发送的posId获取位置列表
ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(posId);
......
......@@ -50,8 +50,8 @@ namespace OnlineStore.DeviceLibrary
this.Config = lineConfig;
this.ID = lineConfig.Id;
MoveInfo = new StoreMoveInfo(ID," DUO料仓 ");
Name = (" DUO料仓_" + Config.CID + " ").ToUpper();
Name = (" DUO料仓 ").ToUpper();
MoveInfo = new StoreMoveInfo(ID, Name);
List<string> ioList = new List<string>();
AddDeviceName(ioList, Config.IOIPList);
......@@ -71,7 +71,8 @@ namespace OnlineStore.DeviceLibrary
IOManager.Init();
CodeManager.LoadConfig();
CurrShelfNum = ConfigAppSettings.GetIntValue(Setting_Init.CurrShelfNum);
CurrShelfType = ConfigAppSettings.GetIntValue(Setting_Init.CurrShelfType);
Task.Factory.StartNew(delegate
{
// RFIDManager.RfidReader.Open(rfidList.ToArray());
......@@ -220,10 +221,10 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.LR_03_BatchAxisHome))
{
MoveInfo.NextMoveStep(StoreMoveStep.LR_04_BatchToP1);
LogUtil.info(Name + "复位 " + MoveInfo.MoveStep + " :提升轴到P1点,上下轴到待机点P1");
LogUtil.info(Name + "复位 " + MoveInfo.MoveStep + " :提升轴到P1点,上下轴到待机点P2");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
T1_BatchAxis.AbsMove(MoveInfo, Config.BatchAxis_P1, Config.BatchAxis_P1Speed);
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P1, Config.UpdownAxis_P1Speed);
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P2, Config.UpdownAxis_P2Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.LR_04_BatchToP1))
......
......@@ -13,6 +13,9 @@ namespace OnlineStore.DeviceLibrary
partial class DUOStoreBean
{
public bool InstoreEndSendShelf = false;
public bool OutstoreEndSendShelf = false;
public int CurrShelfNum = 0;
/// <summary>
/// 料架类型,0=空料架,1=入库料架,2=出库料架
......@@ -29,9 +32,13 @@ namespace OnlineStore.DeviceLibrary
CurrShelfType = type;
ConfigAppSettings.SaveValue(Setting_Init.CurrShelfType, type);
ConfigAppSettings.SaveValue(Setting_Init.CurrShelfNum, num);
if (type.Equals(0) || type.Equals(1))
{
outStoreCount = 0;
}
LogUtil.info(Name + "更新料架信息:【" + CurrShelfNum + "】【" + CurrShelfType + "】");
}
protected override bool CheckWaitResult(StoreMoveInfo moveInfo, WaitResultInfo wait)
{
if (wait.WaitType.Equals(WaitEnum.W008_BatchAxis))
......@@ -67,16 +74,321 @@ namespace OnlineStore.DeviceLibrary
}
return false;
}
#region 料架出料
public int outStoreCount = 0;
public bool CanOut()
{
if (isInSuddenDown || isNoAirCheck)
{
return false;
}
if (MoveInfo.MoveType.Equals(MoveType.OutStore))
{
return true;
}
else if (MoveInfo.MoveType.Equals(MoveType.None))
{
if (IOValue(IO_Type.Line_WorkCheck).Equals(IO_VALUE.HIGH) )
{
if (CurrShelfNum >= 0 && (CurrShelfType.Equals(0) || CurrShelfType.Equals(2)))
{
StartOutStoreMove(new InOutParam(MoveType.OutStore));
}
}
}
return false;
}
public override bool StartOutStoreMove(InOutParam param)
{
//判断是哪个工位有料架
if (IOValue(IO_Type.Line_WorkCheck).Equals(IO_VALUE.HIGH))
{
if (CurrShelfNum >= 0 && (CurrShelfType.Equals(0) || CurrShelfType.Equals(2)))
{
runStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.OutStoreExecute;
MoveInfo.NewMove(MoveType.OutStore, new InOutParam(MoveType.OutStore));
UpdateShelfNum(CurrShelfNum, 2);
L_05_WaitTime(StoreMoveStep.LO_05_WaitTime);
return true;
}
}
return true;
return false;
}
public bool StartTrayOut(InOutParam outParam)
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_11_BatchAxisDown);
InOutStoreLog("取料:批量轴下降指定的高度");
if (outParam == null || outParam.PosID == null || outParam.PosID.Equals(""))
{
LogUtil.error(Name + " StartTrayOut 出库失败,参数不完整:");
LogUtil.error(outParam.ToStr());
return false;
}
if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveStep.Equals(StoreMoveStep.LO_09_WaitOut))
{
MoveInfo.NewMove(MoveType.OutStore, outParam);
//可以开始出库啦
MoveInfo.NextMoveStep(StoreMoveStep.LO_11_BatchAxisDown);
int height = outParam.PlateH + 4;
int targetPosition = T1_BatchAxis.GetAclPosition() - height * Config.BatchAxis_ChangeValue;
if (targetPosition < Config.BatchAxis_P1)
{
targetPosition = Config.BatchAxis_P1;
}
InOutStoreLog("出库移栽:"+outParam.ToStr() +" 提升伺服下降" + height + "mm,目标:" + targetPosition);
T1_BatchAxis.AbsMove(MoveInfo, targetPosition, Config.BatchAxis_P2Speed);
return true;
}
else
{
LogUtil.error(Name + "出库" + outParam.ToStr() + "失败,未准备好料架");
return false;
}
}
protected override void OutStoreProcess()
{
if (MoveInfo.IsInWait)
{
CheckWait();
}
if (MoveInfo.IsInWait)
{
return;
}
#region 料串检测
else if (MoveInfo.IsStep(StoreMoveStep.LO_05_WaitTime))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_06_TopUp);
InOutStoreLog("料架出库: 顶升气缸上升");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_06_TopUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_07_HoisterForward);
InOutStoreLog("料架出库:取料提升机构前进");
hoisterCylinder.StartForward(MoveInfo);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_07_HoisterForward))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_08_AxisUpToP2);
InOutStoreLog("料架出库:上料轴开始慢速上升到P2点,等待检测到料盘");
BatchAxisToP2(true);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_08_AxisUpToP2))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_09_WaitOut);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_09_WaitOut))
{
if (OutstoreEndSendShelf && outStoreCount > 0)
{
InOutStoreLog("料架出库:OutstoreEndSendShelf=true,开始送出料架");
LO_31_BatchAxisToP1();
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_09_WaitOut);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
InOutStoreLog(" 等待料盘出库");
}
}
#endregion
#region 取放料处理
else if (MoveInfo.IsStep(StoreMoveStep.LO_11_BatchAxisDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_12_ToBoxDoor);
if (LastPosParam.TargetBox.Equals(1))
{
InOutStoreLog("取料, BOX " + LastPosParam.TargetBox + " 升降轴到料门口高点[" + Config.UpdownAxis_P4 + "],旋转轴到料仓门口 [" + Config.MiddleAxis_P2 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P4, Config.UpdownAxis_P4Speed);
T2_MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P2, Config.MiddleAxis_P2Speed);
}
else
{
InOutStoreLog("取料, BOX " + LastPosParam.TargetBox + " 升降轴到料门口高点[" + Config.UpdownAxis_P6 + "],旋转轴到料仓门口 [" + Config.MiddleAxis_P3 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P6, Config.UpdownAxis_P6Speed);
T2_MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P3, Config.MiddleAxis_P3Speed);
}
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_12_ToBoxDoor))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_13_UpdownDown);
if (LastPosParam.TargetBox.Equals(1))
{
InOutStoreLog("取料:升降轴下降到料门口低点[" + Config.UpdownAxis_P3 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P3, Config.UpdownAxis_P3Speed);
}
else
{
InOutStoreLog("取料:升降轴下降到料门口低点[" + Config.UpdownAxis_P5 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P5, Config.UpdownAxis_P5Speed);
}
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_13_UpdownDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_14_CylinderTighten);
InOutStoreLog("取料:夹爪气缸夹紧");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Clamp);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_14_CylinderTighten))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_15_UpdownUp);
if (LastPosParam.TargetBox.Equals(1))
{
InOutStoreLog("取料:升降轴上升到料门口高点[" + Config.UpdownAxis_P4 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P4, Config.UpdownAxis_P4Speed);
}
else
{
InOutStoreLog("取料:升降轴上升到料门口高点[" + Config.UpdownAxis_P6 + "]");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P6, Config.UpdownAxis_P6Speed);
}
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_15_UpdownUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_16_MiddleToP1);
InOutStoreLog("取料:旋转轴到料仓位置P1,");
T2_MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P1, Config.MiddleAxis_P1Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_16_MiddleToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_17_UpdownToP2);
InOutStoreLog("取料:升降轴到料串高点P2");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P2, Config.UpdownAxis_P2Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_17_UpdownToP2))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_18_UpdownDown);
InOutStoreLog("取料:升降轴到料串放料低点");
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P1, Config.UpdownAxis_P1Speed);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_18_UpdownDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_19_CylinderRelax);
InOutStoreLog("料盘移栽: 夹爪气缸放松");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Clamp, IO_Type.ClampCylinder_Relax);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_19_CylinderRelax))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_20_UpdownUp);
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P2, Config.UpdownAxis_P2Speed);
//只有提升轴位置过低时才需要到P3
int currPosition = T1_BatchAxis.GetAclPosition();
if (currPosition <= (Config.BatchAxis_P1 + Config.BatchAxis_ChangeValue * 40))
{
InOutStoreLog("料盘移栽: 升降轴到料串高点[" + Config.UpdownAxis_P2 + "],提升轴[" + currPosition + "]需要到P2");
BatchAxisToP2();
}
else
{
InOutStoreLog("料盘移栽: 升降轴到料串高点[" + Config.UpdownAxis_P2 + "],提升轴[" + currPosition + "]不需要到P2");
}
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_20_UpdownUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_21_NeedSendShelf);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
InOutStoreLog("料盘移栽:判断是否送出料架");
int currPositon = T1_BatchAxis.GetAclPosition();
int tp = currPositon - Config.BatchAxis_ChangeValue * 40;
if (tp <= Config.BatchAxis_P1)
{
LO_31_BatchAxisToP1(" 提升轴位置:" + currPositon + ",料架已满,需要送出料架");
}
else if (OutstoreEndSendShelf)
{
LO_31_BatchAxisToP1(" 提升轴位置:" + currPositon + ",OutstoreEndSendShelf=true,需要送出料架");
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_09_WaitOut);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
InOutStoreLog(" 等待料盘出库");
}
}
#endregion
#region 送出料架处理
else if (MoveInfo.IsStep(StoreMoveStep.LO_31_BatchAxisToP1))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_32_HoisterBack);
InOutStoreLog("送出料架:升降盘定位气缸后退");
hoisterCylinder.StartBack(MoveInfo);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_32_HoisterBack))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_33_TopCylinderDown);
InOutStoreLog("送出料架:顶升气缸下降");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Up, IO_Type.TopCylinder_Up);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_33_TopCylinderDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_34_WorkStopDown);
InOutStoreLog("送出料架:上料阻挡下降1秒,流水线开始转动");
UpdateShelfNum(-1, -1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
LineRun(MoveInfo);
IOMove(IO_Type.Line_Stop2_Work, IO_VALUE.HIGH, false, 1500);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_34_WorkStopDown))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_35_WaitShelfGo);
InOutStoreLog("送出料架:等待上料无料架");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Line_WaitCheck, IO_VALUE.LOW));
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_35_WaitShelfGo))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_36_LineRun);
InOutStoreLog("送出料架:流水线再转动3秒");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
LineRun(MoveInfo);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_36_LineRun))
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_37_LineStop);
InOutStoreLog("送出料架:流水线停止转动");
LineStop(MoveInfo);
}
else if (MoveInfo.IsStep(StoreMoveStep.LO_37_LineStop))
{
LineStop(MoveInfo);
MoveEndP();
}
#endregion
}
private void LO_31_BatchAxisToP1(string msg = "")
{
MoveInfo.NextMoveStep(StoreMoveStep.LO_31_BatchAxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
InOutStoreLog("出库 :" + msg + "开始送出料架,提升伺服到P1点 ");
UpdateShelfNum(CurrShelfNum, 0);
T1_BatchAxis.SuddenStop();
T1_BatchAxis.AbsMove(MoveInfo, Config.BatchAxis_P1, Config.BatchAxis_P2Speed);
}
#endregion
#region 料架入料
......@@ -87,6 +399,9 @@ namespace OnlineStore.DeviceLibrary
private int LastWidth = 0;
private List<string> LastCodeList = new List<string>();
private List<string> YuCodeList = new List<string>();
private Task getPosTask = null;
private string lastcode = "";
private InOutParam LastPosParam = null;
private bool InShelfInProcess = false;
private bool StartInStoreP()
......@@ -131,11 +446,11 @@ namespace OnlineStore.DeviceLibrary
});
}
private void LI_05_WaitTime()
private void L_05_WaitTime(StoreMoveStep step)
{
//定位工位有料架,等待1秒后再次检测
MoveInfo.NextMoveStep(StoreMoveStep.LI_05_WaitTime);
InOutStoreLog("上料区检测到料架: " + MoveInfo.SLog + ",阻挡1上升,阻挡2上升,转动流水线5秒");
MoveInfo.NextMoveStep(step);
InOutStoreLog("上料区检测到料架: 阻挡1上升,阻挡2上升,转动流水线5秒");
IOMove(IO_Type.Line_Stop1_Wait, IO_VALUE.LOW);
IOMove(IO_Type.Line_Stop2_Work, IO_VALUE.LOW);
LineRun(MoveInfo);
......@@ -148,12 +463,12 @@ namespace OnlineStore.DeviceLibrary
UpdateShelfNum(GetShelfNum(), 1);
if (IOValue(IO_Type.Line_WorkCheck).Equals(IO_VALUE.HIGH))
{
LI_05_WaitTime();
L_05_WaitTime(StoreMoveStep.LI_05_WaitTime);
}
else if (IOValue(IO_Type.Line_WaitCheck).Equals(IO_VALUE.HIGH))
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_04_LineStart);
InOutStoreLog("入料检测: " + MoveInfo.SLog + " 上料等待区有料架 ,阻挡1下降500,阻挡2上升,流水线转动 ,等待料架到达上料区");
InOutStoreLog("入料检测: 上料等待区有料架 ,阻挡1下降500,阻挡2上升,流水线转动 ,等待料架到达上料区");
IOMove(IO_Type.Line_Stop1_Wait, IO_VALUE.HIGH, false, 500);//进料阻挡下降
IOMove(IO_Type.Line_Stop2_Work, IO_VALUE.LOW);//缓冲阻挡前进1000
......@@ -185,7 +500,7 @@ namespace OnlineStore.DeviceLibrary
runStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(MoveType.InStore,new InOutParam(MoveType.InStore));
LI_05_WaitTime();
L_05_WaitTime(StoreMoveStep.LI_05_WaitTime);
return true;
}
else if (IOValue(IO_Type.Line_WaitCheck).Equals(IO_VALUE.HIGH))
......@@ -219,8 +534,7 @@ namespace OnlineStore.DeviceLibrary
}
return false ;
}
protected override void InStoreProcess()
{
if (MoveInfo.IsInWait)
......@@ -231,6 +545,7 @@ namespace OnlineStore.DeviceLibrary
{
return;
}
#region 料串检测
if (MoveInfo.IsStep(StoreMoveStep.LI_01_BatchAxisToP1))
{
......@@ -283,6 +598,9 @@ namespace OnlineStore.DeviceLibrary
T2_MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P4, Config.MiddleAxis_P4Speed);
}
#endregion
#region 取放料处理
else if (MoveInfo.IsStep(StoreMoveStep.LI_11_AxisToTray))
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_12_UpdownAxisToP3);
......@@ -362,7 +680,8 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.IsStep(StoreMoveStep.LI_21_WaitToBox))
{
int storeId = LastPosParam.GetStoreId();
if (IOManager.IOValue(IO_Type.InDoor_Check, storeId).Equals(IO_VALUE.LOW))
BoxBean box = BoxMap[storeId];
if (IOManager.IOValue(IO_Type.InDoor_Check, storeId).Equals(IO_VALUE.LOW) && box.waitInStoreParam == null)
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_22_ToBoxDoor);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
......@@ -436,6 +755,7 @@ namespace OnlineStore.DeviceLibrary
{
CheckHasTray();
}
#endregion
#region 送出料架处理
......@@ -455,19 +775,20 @@ namespace OnlineStore.DeviceLibrary
{
//判断是否需要送出料架,如果入口和等待区无料架,暂不送出
if (IOValue(IO_Type.Line_InCheck).Equals(IO_VALUE.LOW) && IOValue(IO_Type.Line_WaitCheck).Equals(IO_VALUE.LOW))
if (IOValue(IO_Type.Line_InCheck).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.Line_WaitCheck).Equals(IO_VALUE.HIGH) || InstoreEndSendShelf)
{
InOutStoreLog("送出料架:入口和等待区暂无料架,不需要送出料架");
MoveEndP();
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_34_WorkStopDown);
InOutStoreLog("送出料架:上料阻挡下降1秒,流水线开始转动");
InOutStoreLog("送出料架[" + InstoreEndSendShelf + "]:上料阻挡下降1秒,流水线开始转动");
UpdateShelfNum(-1, -1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
LineRun(MoveInfo);
IOMove(IO_Type.Line_Stop2_Work, IO_VALUE.HIGH, false, 1500);
}
else
{
InOutStoreLog("送出料架:入口和等待区暂无料架,不需要送出料架");
MoveEndP();
}
}
else if (MoveInfo.IsStep(StoreMoveStep.LI_34_WorkStopDown))
......@@ -526,23 +847,7 @@ namespace OnlineStore.DeviceLibrary
}
return 1;
}
protected void ClearTimeoutAlarm(string msg)
{
if (isInSuddenDown || isNoAirCheck)
{
return;
}
if (WarnMsg.Contains(msg) && alarmType.Equals(AlarmType.IoSingleTimeOut))
{
LogUtil.info(Name + "清理信号超时报警【" + WarnMsg + "】 ");
alarmType = AlarmType.None;
SetWarnMsg("");
}
}
private Task getPosTask = null;
private string lastcode = "";
private InOutParam LastPosParam = null;
private void LI_18_GetPosID()
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_18_GetPosID);
......@@ -602,6 +907,7 @@ namespace OnlineStore.DeviceLibrary
T3_UpdownAxis.AbsMove(MoveInfo, Config.UpdownAxis_P2, Config.UpdownAxis_P2Speed);
T2_MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P4, Config.MiddleAxis_P4Speed);
}
private void LI_09_ScanCode()
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_09_ScanCode);
......@@ -617,7 +923,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
InOutStoreLog("料盘移栽" + MoveInfo.SLog + ":开始扫码");
InOutStoreLog("料盘移栽 :开始扫码");
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitScanCode());
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(7000));
......@@ -646,7 +952,7 @@ namespace OnlineStore.DeviceLibrary
//TODO 此处需要等待空托盘
if (ShelfNoTray.Equals(false))
{
InOutStoreLog("料盘移栽" + MoveInfo.SLog + ": ,预扫码");
InOutStoreLog("料盘移栽 : ,预扫码");
//还有料盘,直接扫码
YuCodeList = new List<string>();
List<string> bijiaoList = new List<string>(LastCodeList);
......@@ -715,15 +1021,17 @@ namespace OnlineStore.DeviceLibrary
LI_31_BatchAxisToP1();
}
}
private void LI_31_BatchAxisToP1()
{
MoveInfo.NextMoveStep(StoreMoveStep.LI_31_BatchAxisToP1);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
InOutStoreLog("料盘移栽" + MoveInfo.SLog + ":未检测到料盘,提升伺服到P1点 ");
InOutStoreLog("料盘移栽 :未检测到料盘,提升伺服到P1点 ");
UpdateShelfNum(CurrShelfNum, 0);
T1_BatchAxis.SuddenStop();
T1_BatchAxis.AbsMove(MoveInfo, Config.BatchAxis_P1, Config.BatchAxis_P2Speed);
}
private void BatchAxisToP2(bool isFirstMove = true)
{
int targetP2 = Config.BatchAxis_P2;
......@@ -800,6 +1108,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(msg);
return LastHeight;
}
public int GetWidth()
{
return 7;
......
......@@ -297,5 +297,28 @@ namespace OnlineStore.DeviceLibrary
}
#endregion
public string GetMoveStr()
{
string msg = "";
msg += "状态: " + runStatus + " " + storeStatus + "\n";
// msg += "lineS: " + storeStatus + "\n";
msg += "报警: " + alarmType + "\n";
msg += MoveInfo.MoveType + " " + MoveInfo.SLog + "\n";
return msg;
}
protected void ClearTimeoutAlarm(string msg)
{
if (isInSuddenDown || isNoAirCheck)
{
return;
}
if (WarnMsg.Contains(msg) && alarmType.Equals(AlarmType.IoSingleTimeOut))
{
LogUtil.info(Name + "清理信号超时报警【" + WarnMsg + "】 ");
alarmType = AlarmType.None;
SetWarnMsg("");
}
}
}
}
......@@ -408,10 +408,10 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(deviceName + "收到入库命令: " + result.Param.ToStr() + " ");
if (!box.StartInStoreMove(result.Param))
{
if (box.waitInStoreList == null)
if (box.waitInStoreParam == null)
{
result.Msg = deviceName + ("收到入库命令:" + "启动入库失败,缓存到waitInStoreList等待稍后入库: " + result.Param.ToStr() + " ");
box.waitInStoreList = result.Param;
box.waitInStoreParam = result.Param;
}
}
}
......
......@@ -12,6 +12,18 @@ namespace OnlineStore.DeviceLibrary
{
public class InOutParam
{
/// <summary>
/// 创建新出入库信息
/// </summary>
/// <param name="type">出入库类型</param>
/// <param name="wareNo">二维码内容</param>
/// <param name="posId">库位号</param>
/// <param name="platew">宽度</param>
/// <param name="plateh">高度</param>
/// <param name="targetP">出入库目标位置, 0=出库表示批量出料,入库表示目标库位 。 1=紧急出料到NG口,入库NG送到NG口</param>
/// <param name="shefNum">料架编号</param>
/// <param name="IsNg">是否是入库NG料</param>
/// <param name="ngMsg">NG消息</param>
public InOutParam(MoveType type, string wareNo = "", string posId = "", int platew = 0, int plateh = 0, int targetP = 0, int shefNum=0, bool IsNg = false, string ngMsg = "")
{
WareCode = wareNo;
......@@ -121,12 +133,19 @@ namespace OnlineStore.DeviceLibrary
else
{
if (moveType.Equals(MoveType.InStore))
{
{
return " 入库 [" + PosID + "] [" + WareCode + "], [" + PlateW + "x" + PlateH + "] ";
}
else
{
return " 出库 [" + PosID + "] [" + WareCode + "], [" + PlateW + "x" + PlateH + "] ";
if (TargetPosition.Equals(1))
{
return " 批量出库 [" + PosID + "] [" + WareCode + "], [" + PlateW + "x" + PlateH + "] ";
}
else
{
return " 单盘出库 [" + PosID + "] [" + WareCode + "], [" + PlateW + "x" + PlateH + "] ";
}
}
}
}
......
......@@ -257,12 +257,15 @@ namespace OnlineStore.DeviceLibrary
/// 料仓出库: 进出轴到P1
/// </summary>
SO_09_InoutBack,
/// <summary>
/// 料仓出库:升降轴,旋转轴到待机点P1
/// </summary>
SO_10_GoBack,
/// <summary>
/// 等待提升机构拿走料盘
/// </summary>
SO_11_WaitTrayGo,
/// <summary>
......@@ -325,11 +328,12 @@ namespace OnlineStore.DeviceLibrary
#region 入料装置入料处理,2001 开始
#region 料架入库处理,2001 开始
/// <summary>
///入料检测: 提升轴先返回P1
/// </summary>
LI_01_BatchAxisToP1 = 2001,
/// <summary>
/// 入料检测:取料提升机构后退端
......@@ -347,23 +351,18 @@ namespace OnlineStore.DeviceLibrary
/// 入料检测:流水线上料区检测到料架,流水线再正传五秒
/// </summary>
LI_05_WaitTime,
/// <summary>
///入料检测: 顶升气缸上升
/// </summary>
LI_06_TopUp,
/// <summary>
/// 入料检测:取料提升机构前进
/// </summary>
LI_07_HoisterForward,
/// <summary>
/// 入料检测:上料轴开始慢速上升到P2点,等待检测到料盘
/// </summary>
LI_08_AxisUpToP2,
/// <summary>
/// 入料检测:扫码
/// </summary>
......@@ -373,12 +372,10 @@ namespace OnlineStore.DeviceLibrary
/// 入料检测:有料盘:升降轴到料串高点P2,旋转轴到料串位置P4
/// </summary>
LI_11_AxisToTray,
/// <summary>
/// 取料:升降轴到料串低点P1
/// </summary>
LI_12_UpdownAxisToP3,
/// <summary>
/// 取料:夹爪气缸夹紧
/// </summary>
......@@ -452,11 +449,11 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 送出料架,上料阻挡下降1秒,流水线开始转动
/// </summary>
LI_34_WorkStopDown = 11034,
LI_34_WorkStopDown ,
/// <summary>
/// 送出料架,等待上料无料架
/// </summary>
LI_35_WaitShelfGo = 11035,
LI_35_WaitShelfGo ,
/// <summary>
///送出料架, 流水线再转动3秒,
/// </summary>
......@@ -470,6 +467,127 @@ namespace OnlineStore.DeviceLibrary
#region 料架出库处理,3001 开始
/// <summary>
///料架出库: 提升轴先返回P1
/// </summary>
LO_01_BatchAxisToP1 =3001,
/// <summary>
/// 料架出库:取料提升机构后退端
/// </summary>
LO_02_HoisterBack,
/// <summary>
/// 料架出库:定位气缸下降
/// </summary>
LO_03_LocationDown,
/// <summary>
/// 料架出库,转动料架,等待条件到达停止
/// </summary>
LO_04_LineStart,
/// <summary>
/// 料架出库:流水线上料区检测到料架,流水线再正传五秒
/// </summary>
LO_05_WaitTime,
/// <summary>
///料架出库: 顶升气缸上升
/// </summary>
LO_06_TopUp,
/// <summary>
/// 料架出库:取料提升机构前进
/// </summary>
LO_07_HoisterForward,
/// <summary>
/// 料架出库:上料轴开始慢速上升到P2点,等待检测到料盘
/// </summary>
LO_08_AxisUpToP2,
/// <summary>
/// 料架出库,料串已准备好,等待出库中
/// </summary>
LO_09_WaitOut,
/// <summary>
/// 取放料:批量轴下降指定的高度
/// </summary>
LO_11_BatchAxisDown,
/// <summary>
/// 取放料:旋转轴到料仓门口,升降轴到入料低点
/// </summary>
LO_12_ToBoxDoor,
/// <summary>
/// 取放料:升降轴下降到料门口低点
/// </summary>
LO_13_UpdownDown,
/// <summary>
/// 取放料:夹爪气缸夹紧
/// </summary>
LO_14_CylinderTighten,
/// <summary>
/// 取放料:升降轴上升到料门口高点
/// </summary>
LO_15_UpdownUp,
/// <summary>
/// 取放料:旋转轴到料仓位置P1
/// </summary>
LO_16_MiddleToP1,
/// <summary>
/// 取放料:升降轴到料串高点P2
/// </summary>
LO_17_UpdownToP2,
/// <summary>
/// 取放料:升降轴到料串放料低点
/// </summary>
LO_18_UpdownDown,
/// <summary>
/// 料盘移栽: 夹爪气缸放松
/// </summary>
LO_19_CylinderRelax,
/// <summary>
/// 料盘移栽: 升降轴到料串高点
/// </summary>
LO_20_UpdownUp,
/// <summary>
/// 料盘移栽:判断是否送出料架
/// </summary>
LO_21_NeedSendShelf,
/// <summary>
/// 送出料架,未检测到料盘,提升伺服到P1点
/// </summary>
LO_31_BatchAxisToP1 = 3031,
/// <summary>
/// 送出料架,升降盘定位气缸后退
/// </summary>
LO_32_HoisterBack,
/// <summary>
/// 送出料架,顶升气缸下降
/// </summary>
LO_33_TopCylinderDown,
/// <summary>
/// 送出料架,上料阻挡下降1秒,流水线开始转动
/// </summary>
LO_34_WorkStopDown,
/// <summary>
/// 送出料架,等待上料无料架
/// </summary>
LO_35_WaitShelfGo ,
/// <summary>
///送出料架, 流水线再转动3秒,
/// </summary>
LO_36_LineRun,
/// <summary>
///送出料架, 流水线停止转动,
/// </summary>
LO_37_LineStop,
#endregion
}
public enum AlarmType
......
......@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary
{
moveType = MoveType.None;
MoveParam = new InOutParam();
MoveParam = new InOutParam(MoveType.None);
this.storeId = storeId;
this.moveStep = StoreMoveStep.Wait;
IsInWait = false;
......@@ -85,7 +85,7 @@ namespace OnlineStore.DeviceLibrary
this.moveType = type;
if (param == null)
{
param = new InOutParam();
param = new InOutParam(type);
}
this.MoveParam = param;
LastSetpTime = DateTime.Now;
......
......@@ -222,32 +222,32 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("UpdownAxis_P6")]
public int UpdownAxis_P6 { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P1速度,UpdownAxis_P1Speed,500
/// PRO,0,T2_升降轴P1速度/慢速度,UpdownAxis_P1Speed,500
/// </summary>
[ConfigProAttribute("UpdownAxis_P1Speed")]
public int UpdownAxis_P1Speed { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P2速度,UpdownAxis_P2Speed,501
/// PRO,0,T2_升降轴P2速度/快速度,UpdownAxis_P2Speed,501
/// </summary>
[ConfigProAttribute("UpdownAxis_P2Speed")]
public int UpdownAxis_P2Speed { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P3速度,UpdownAxis_P3Speed,502
/// PRO,0,T2_升降轴P3速度/慢速度,UpdownAxis_P3Speed,502
/// </summary>
[ConfigProAttribute("UpdownAxis_P3Speed")]
public int UpdownAxis_P3Speed { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P4速度,UpdownAxis_P4Speed,503
/// PRO,0,T2_升降轴P4速度/快速度,UpdownAxis_P4Speed,503
/// </summary>
[ConfigProAttribute("UpdownAxis_P4Speed")]
public int UpdownAxis_P4Speed { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P5速度,UpdownAxis_P5Speed,504
/// PRO,0,T2_升降轴P5速度/慢速度,UpdownAxis_P5Speed,504
/// </summary>
[ConfigProAttribute("UpdownAxis_P5Speed")]
public int UpdownAxis_P5Speed { get; set; }
/// <summary>
/// PRO,0,T2_升降轴P6速度,UpdownAxis_P6Speed,505
/// PRO,0,T2_升降轴P6速度/快速度,UpdownAxis_P6Speed,505
/// </summary>
[ConfigProAttribute("UpdownAxis_P6Speed")]
public int UpdownAxis_P6Speed { get; set; }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!