Commit 4d82f08e LN

增加循环出库功能

1 个父辈 43a11e56
......@@ -9,7 +9,7 @@
AIOBOX操作类
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.suspend">
<member name="F:Asa.IOModule.AIOBOX._unrevdRemote">
<summary>
暂停次数
WriteDO 命令非常多时,暂停一次发送 ReadDI 或 ReadDO
......@@ -22,17 +22,12 @@
小于30时,会出现接收数据连包的情况
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.NET_SLEEP">
<member name="F:Asa.IOModule.AIOBOX.LISTEN_SLEEP">
<summary>
监听网络接收数据的间隔
必须小于SEND_SLEEP
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.TRIG_SLEEP">
<summary>
触发DIO状态事件的间隔
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.DI_Changed">
<summary>
自动读取DI委托
......@@ -157,6 +152,13 @@
<param name="localIP">本地IP地址</param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.CheckIP(System.String)">
<summary>
检查IP地址
</summary>
<param name="ip"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Connect">
<summary>
连接
......@@ -170,17 +172,23 @@
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadInput(System.Boolean,System.Int32)">
<summary>
自动读取输入端,触发事件
自动读取输入端并触发事件(主动上传数据 = 禁止)
</summary>
<param name="read">是否自动读取</param>
<param name="sleep">间隔,必须大于等于15ms</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadInput(System.Boolean)">
<summary>
自动读取输入端并触发事件(主动上传数据 = 使能)
</summary>
<param name="read">是否自动读取</param>
<param name="sleep">间隔,必须大于15ms</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.AutoReadOutput(System.Boolean,System.Int32)">
<summary>
自动读取输出端,触发事件
</summary>
<param name="read">是否自动读取</param>
<param name="sleep">间隔,必须大于10ms</param>
<param name="sleep">间隔,必须大于等于15ms</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta)">
<summary>
......@@ -365,248 +373,5 @@
闭合,打开,高电平
</summary>
</member>
<member name="T:Asa.IOModule.Reg">
<summary>
IO模块寄存器
</summary>
</member>
<member name="F:Asa.IOModule.Reg.ID">
<summary>
标识
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Text">
<summary>
文本,仅用于显示
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Address">
<summary>
寄存器地址
</summary>
</member>
<member name="F:Asa.IOModule.Reg.Status">
<summary>
当前的状态
</summary>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(Asa.IOModule.Box_Addr)">
<summary>
寄存器,文本空,状态OFF
</summary>
<param name="address">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.String,Asa.IOModule.Box_Addr)">
<summary>
寄存器,状态OFF
</summary>
<param name="text">文本</param>
<param name="addr">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.Int32,System.String,Asa.IOModule.Box_Addr)">
<summary>
寄存器,状态OFF
</summary>
<param name="id">标志</param>
<param name="text">文本</param>
<param name="addr">地址</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.String,Asa.IOModule.Box_Addr,Asa.IOModule.Box_Sta)">
<summary>
寄存器
</summary>
<param name="text">文本</param>
<param name="addr">地址</param>
<param name="status">状态</param>
</member>
<member name="M:Asa.IOModule.Reg.#ctor(System.Int32,System.String,Asa.IOModule.Box_Addr,Asa.IOModule.Box_Sta)">
<summary>
寄存器
</summary>
<param name="id">标志</param>
<param name="text">文本</param>
<param name="address">地址</param>
<param name="status">状态</param>
</member>
<member name="T:Asa.IOModule.Box_Addr">
<summary>
IO模块寄存器地址
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_1">
<summary>
输入点,DI01
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_2">
<summary>
输入点,DI02
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_3">
<summary>
输入点,DI03
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_4">
<summary>
输入点,DI04
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_5">
<summary>
输入点,DI05
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_6">
<summary>
输入点,DI06
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_7">
<summary>
输入点,DI07
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_8">
<summary>
输入点,DI08
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_9">
<summary>
输入点,DI09
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_10">
<summary>
输入点,DI10
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_11">
<summary>
输入点,DI11
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_12">
<summary>
输入点,DI12
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_13">
<summary>
输入点,DI13
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_14">
<summary>
输入点,DI14
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_15">
<summary>
输入点,DI15
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DI_16">
<summary>
输入点,DI16
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_1">
<summary>
输出点,DO01
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_2">
<summary>
输出点,DO02
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_3">
<summary>
输出点,DO03
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_4">
<summary>
输出点,DO04
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_5">
<summary>
输出点,DO05
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_6">
<summary>
输出点,DO06
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_7">
<summary>
输出点,DO07
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_8">
<summary>
输出点,DO08
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_9">
<summary>
输出点,DO09
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_10">
<summary>
输出点,DO10
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_11">
<summary>
输出点,DO11
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_12">
<summary>
输出点,DO12
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_13">
<summary>
输出点,DO13
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_14">
<summary>
输出点,DO14
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_15">
<summary>
输出点,DO15
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.DO_16">
<summary>
输出点,DO16
</summary>
</member>
<member name="F:Asa.IOModule.Box_Addr.NONE">
<summary>
</summary>
</member>
<member name="T:Asa.IOModule.DI_Addr">
<summary>
输入端地址
</summary>
</member>
<member name="T:Asa.IOModule.DO_Addr">
<summary>
输入端地址
</summary>
</member>
</members>
</doc>
......@@ -53,6 +53,7 @@
<add key ="LOC" value ="1"/>
<!--最多识别多少个二维码-->
<add key ="QRCodeCount" value ="1"/>
<add key ="OpenCycleOut" value ="1"/>
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
......
......@@ -237,6 +237,7 @@
this.清理日志ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
this.英文ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.btnCycleOut = new System.Windows.Forms.Button();
this.contextMenuStrip1.SuspendLayout();
this.groupAuto.SuspendLayout();
this.groupBox6.SuspendLayout();
......@@ -289,6 +290,7 @@
//
// groupAuto
//
this.groupAuto.Controls.Add(this.btnCycleOut);
this.groupAuto.Controls.Add(this.btnSaveSinglePosId);
this.groupAuto.Controls.Add(this.checkBox1);
this.groupAuto.Controls.Add(this.btnSave);
......@@ -378,7 +380,7 @@
// btnBatchOutTest
//
this.btnBatchOutTest.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnBatchOutTest.Location = new System.Drawing.Point(398, 57);
this.btnBatchOutTest.Location = new System.Drawing.Point(396, 58);
this.btnBatchOutTest.Name = "btnBatchOutTest";
this.btnBatchOutTest.Size = new System.Drawing.Size(157, 38);
this.btnBatchOutTest.TabIndex = 228;
......@@ -389,7 +391,7 @@
// btnStart
//
this.btnStart.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnStart.Location = new System.Drawing.Point(398, 17);
this.btnStart.Location = new System.Drawing.Point(396, 17);
this.btnStart.Name = "btnStart";
this.btnStart.Size = new System.Drawing.Size(157, 38);
this.btnStart.TabIndex = 280;
......@@ -427,7 +429,7 @@
// btnOutStore
//
this.btnOutStore.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOutStore.Location = new System.Drawing.Point(398, 96);
this.btnOutStore.Location = new System.Drawing.Point(396, 99);
this.btnOutStore.Name = "btnOutStore";
this.btnOutStore.Size = new System.Drawing.Size(157, 38);
this.btnOutStore.TabIndex = 101;
......@@ -2671,6 +2673,17 @@
this.英文ToolStripMenuItem.Text = "英文";
this.英文ToolStripMenuItem.Click += new System.EventHandler(this.开启DEBUGToolStripMenuItem_Click);
//
// btnCycleOut
//
this.btnCycleOut.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCycleOut.Location = new System.Drawing.Point(396, 140);
this.btnCycleOut.Name = "btnCycleOut";
this.btnCycleOut.Size = new System.Drawing.Size(157, 38);
this.btnCycleOut.TabIndex = 285;
this.btnCycleOut.Text = "开始循环出库";
this.btnCycleOut.UseVisualStyleBackColor = true;
this.btnCycleOut.Click += new System.EventHandler(this.btnCycleOut_Click);
//
// FrmStoreBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
......@@ -2941,6 +2954,7 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator20;
private System.Windows.Forms.ToolStripMenuItem 升降轴位置调试ToolStripMenuItem;
private System.Windows.Forms.Button btnSaveSinglePosId;
private System.Windows.Forms.Button btnCycleOut;
}
}
......@@ -106,7 +106,10 @@ namespace OnlineStore.AutoInOutStore
private string AutoOut = ResourceCulture.GetString(ResourceCulture.AutoOut, "自动出库:");
private string AutoIn = ResourceCulture.GetString(ResourceCulture.AutoIn, "自动入库:");
public static string cannotMove = ResourceCulture.GetString(ResourceCulture.CannotMove, "定位气缸不在下降端,不能移动进出轴");
public static string warn = ResourceCulture.GetString(ResourceCulture.WarnMsg, "警告");
public static string warn = ResourceCulture.GetString(ResourceCulture.WarnMsg, "警告");
private string StartCycle = ResourceCulture.GetString(ResourceCulture.StartCycle, "开始循环出库");
private string StopCycle = ResourceCulture.GetString(ResourceCulture.StopCycle, "停止循环出库");
public void processMenu()
{
......@@ -241,7 +244,7 @@ namespace OnlineStore.AutoInOutStore
cmbJianGe.Items.Add(i.ToString());
}
cmbJianGe.SelectedIndex = 1;
btnCycleOut.Visible = ConfigAppSettings.GetIntValue(Setting_Init.OpenCycleOut).Equals(1);
DebugStatus(false);
}
......@@ -391,6 +394,20 @@ namespace OnlineStore.AutoInOutStore
groupAuto.Text = ResourceCulture.GetString("自动出入库操作");
btnStart.Text = StartAuto;
}
if (store.CycleOut)
{
if (btnStart.Text.Equals(StartCycle))
{
btnStart.Text = StopCycle;
}
}else
{
if (btnStart.Text.Equals(StopCycle))
{
btnStart.Text = StartCycle;
}
}
}
else
{
......@@ -1820,5 +1837,44 @@ namespace OnlineStore.AutoInOutStore
}
}
}
private void btnCycleOut_Click(object sender, EventArgs e)
{
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
if (store.CycleOut)
{
store.CycleOut = false;
btnCycleOut.Text = StartCycle;
}
else
{
string poText = cmbPosition.Text;
DialogResult res = MessageBox.Show("确定开始[" + poText + "]循环出库?", "提示", MessageBoxButtons.YesNo);
if (res.Equals(DialogResult.Yes) && cmbPosition.SelectedIndex >= 0)
{
store.CyclePosId = poText;
ConfigAppSettings.SaveValue(Setting_Init.DebugPosId, poText);
store.autoMsg = "循环出库:" + poText;
bool result = store.StartOutStoreMove(new InOutStoreParam("CCC", poText), true);
LogUtil.info(LOGGER, store.StoreName + "开始循环出库,开始位置【" + poText + "】结果: " + result);
if (result)
{
store.CycleOut = true;
btnCycleOut.Text = StopCycle;
DebugStatus(false);
}
}
}
}
else
{
MessageBox.Show("请先启动料仓!");
}
}
}
}
......@@ -1368,5 +1368,14 @@
<value>Please enter the correct speed</value>
</data>
<data name="StartCycle" xml:space="preserve">
<value>Start looping out</value>
</data>
<data name="StopCycle" xml:space="preserve">
<value>Stop the loop</value>
</data>
<data name="FrmStoreBox_btnCycleOut_Text" xml:space="preserve">
<value>Start looping out</value>
</data>
</root>
\ No newline at end of file
......@@ -1332,7 +1332,6 @@
<data name="启动失败:设备未初始化完成" xml:space="preserve">
<value>启动失败:设备未初始化完成</value>
</data>
<data name="FrmPositionTool_groupBox1_Text" xml:space="preserve">
<value>设备信息</value>
</data>
......@@ -1366,4 +1365,13 @@
<data name="请输入正确的速度" xml:space="preserve">
<value>请输入正确的速度</value>
</data>
<data name="StartCycle" xml:space="preserve">
<value>开始循环出库</value>
</data>
<data name="StopCycle" xml:space="preserve">
<value>停止循环出库</value>
</data>
<data name="FrmStoreBox_btnCycleOut_Text" xml:space="preserve">
<value>开始循环出库</value>
</data>
</root>
\ No newline at end of file
......@@ -359,5 +359,9 @@ namespace OnlineStore.AutoInOutStore
///门锁打开
/// </summary>
public static string doorOpen = "doorOpen";
public static string StartCycle = "StartCycle";
public static string StopCycle = "StopCycle";
}
}
......@@ -234,4 +234,9 @@ PositionNum,Priority,Height,Width,StoreID,SupportBatch,MiddleAxis_Position_P2,Up
<!--最多识别多少个二维码-->
<add key ="QRCodeCount" value ="1"/>
出库时直接打开门锁,屏蔽出库轴上升功能。
\ No newline at end of file
出库时直接打开门锁,屏蔽出库轴上升功能。
20191112:
增加循环出库功能,展会需要。
......@@ -101,5 +101,6 @@ namespace OnlineStore.Common
public static string LOC = "LOC";
public static string QRCodeCount = "QRCodeCount";
public static string OpenCycleOut = "OpenCycleOut";
}
}
......@@ -234,6 +234,7 @@ namespace OnlineStore.DeviceLibrary
return false;
}
autoNext = false;
CycleOut = false;
mainTimer.Enabled = false;
alarmType = StoreAlarmType.None;
......@@ -342,6 +343,7 @@ namespace OnlineStore.DeviceLibrary
if (isNeedClearAuto)
{
autoNext = false;
CycleOut = false;
}
AxisSuddenStop();
......@@ -833,6 +835,7 @@ namespace OnlineStore.DeviceLibrary
SetWarnMsg("");
//WarnMsg = "";
autoNext = false;
CycleOut = false;
IoCheckTimer.Enabled = false;
serverConnectTimer.Enabled = false;
ledCheckTimer.Enabled = false;
......@@ -867,6 +870,7 @@ namespace OnlineStore.DeviceLibrary
{
SaveAlarmInfo(alarmType, alarmDetial, alarmMsg, storeMoveType);
autoNext = false;
CycleOut = false;
IOManager.IOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
if (this.alarmType.Equals(alarmType) && alarmType != StoreAlarmType.SuddenStop && alarmType != StoreAlarmType.NoAirCheck)
{
......
......@@ -853,6 +853,11 @@ namespace OnlineStore.DeviceLibrary
{
outDownPosition = outDownPosition - Config.BatchAxis_OutDownPosition;
}
//如果检测信号亮,需要多下降
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
{
outDownPosition = outDownPosition + Config.BatchAxis_OutDownPosition;
}
//上下料机构下降的距离=料盘最低高度+默认的高度
targetValue = GetBatchTargetValue(outDownPosition);
if (targetValue >= 1000)
......@@ -1234,39 +1239,14 @@ namespace OnlineStore.DeviceLibrary
{
CurrInOutCount++;
CurrInOutACount++;
//是否自动进入出库状态
//if (!autoNext)
//{
// return;
//}
//if (storeMoveType.Equals(StoreMoveType.InStore))
//{
// string posid = PositionNumList[autoPositionIndex];
// autoMsg = "自动出库:" + posid;
// //自动出入口,入库结束把出库加入队列
// FixtureCodeInfo currInOutFixture = new FixtureCodeInfo(0, "", posid);
// AddWaitOutInfo(currInOutFixture);
// LogUtil.info("自动出入口,入库结束,将库位号【"+ posid + "】加入出库等待中");
//}
//else if (storeMoveType.Equals(StoreMoveType.OutStore))
//{
// int newIndex = autoPositionIndex - autoJiange;
// if (newIndex < 0)
// {
// newIndex = AutoStartIndex;
// }
// else
// {
// autoPositionIndex = newIndex;
// string posid = PositionNumList[newIndex];
// ConfigAppSettings.SaveValue(Setting_Init.DebugPosId, posid);
// //开始自动入库
// autoMsg = "自动入库:" + posid;
// string msg = AutomaticBaiting.doStartBatchIn();
// LogUtil.info("自动出入库:库位号【"+posid+"】,开始入库"+msg);
// }
//}
if (CycleOut&& storeMoveType.Equals(StoreMoveType.OutStore))
{
AutomaticBaiting.ClearOutStoreInfo();
FixtureCodeInfo currInOutFixture = new FixtureCodeInfo(0, "CCC", CyclePosId);
AddWaitOutInfo(currInOutFixture);
LogUtil.info("循环出库结束,将库位号【" + CyclePosId + "】加入出库等待中");
}
}
catch (Exception ex)
{
......@@ -1287,5 +1267,11 @@ namespace OnlineStore.DeviceLibrary
string isBatchMsg = StoreMove.IsBatchInOutStore ? "批量" : "";
LogUtil.info(LOGGER, isBatchMsg + "【" + posId + "】" + msg);
}
#region 循环出入库功能
public bool CycleOut = false;
public string CyclePosId = "";
#endregion
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!