Commit a388f654 LN

Merge branch 'RC1252-AutoInOutStore-NScan' of http://106.15.194.121:8083/sunke/R…

…C30-AutoInOutStore into RC1252-AutoInOutStore-NScan
2 个父辈 02711ae8 9c954c62
......@@ -94,7 +94,11 @@
<logger name="AIOBOX">
<level value="Info" />
<appender-ref ref="AIOBOX" />
</logger>
</logger>
<logger name="HIK.IPCamera" additivity="false">
<level value="All" />
<appender-ref ref="Camera" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
......@@ -135,4 +139,12 @@
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name= "log4net" culture= "neutral" publicKeyToken= "669e0ddf0bb1aa2a" Retargetable= "Yes"/>
<bindingRedirect oldVersion= "0.0.0.0-9.9.9.0" newVersion= "2.0.12.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
......@@ -38,14 +38,16 @@
<ApplicationIcon>box.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="CodeLibrary">
<HintPath>..\..\dll\CodeLibrary.dll</HintPath>
<Reference Include="CodeLibrary, Version=1.0.7844.17688, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\GeneralClassLibrary\CodeLibraryProject\CodeLibrary\bin\Debug\CodeLibrary.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
......@@ -101,6 +103,12 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ResourceCulture.cs" />
<Compile Include="userControl\uc_boxdebug.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="userControl\uc_boxdebug.designer.cs">
<DependentUpon>uc_boxdebug.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="FrmAxisDebug.resx">
<DependentUpon>FrmAxisDebug.cs</DependentUpon>
</EmbeddedResource>
......@@ -152,6 +160,9 @@
<Content Include="model\sr.prototxt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<EmbeddedResource Include="userControl\uc_boxdebug.resx">
<DependentUpon>uc_boxdebug.cs</DependentUpon>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
......
......@@ -60,7 +60,7 @@
// timer1
//
this.timer1.Enabled = true;
this.timer1.Interval = 1000;
this.timer1.Interval = 500;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// groupBox1
......
......@@ -61,6 +61,7 @@
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.btnClearLog = new System.Windows.Forms.Button();
this.tabPage5 = new System.Windows.Forms.TabPage();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.chbDebug = new System.Windows.Forms.CheckBox();
this.lblThisSta = new System.Windows.Forms.Label();
......@@ -159,6 +160,8 @@
this.btnUpDownP6 = new System.Windows.Forms.Button();
this.btnUpDownP3 = new System.Windows.Forms.Button();
this.btnUpDownP4 = new System.Windows.Forms.Button();
this.tabPage6 = new System.Windows.Forms.TabPage();
this.uc_boxdebug1 = new OnlineStore.ACSingleStore.useControl.uc_boxdebug();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.料仓操作ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.启动ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
......@@ -218,6 +221,7 @@
this.tabControl1.SuspendLayout();
this.tabPage4.SuspendLayout();
this.tabPage5.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.groupBox3.SuspendLayout();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.picAxis4)).BeginInit();
......@@ -225,6 +229,7 @@
this.groupBox7.SuspendLayout();
this.groupAxis.SuspendLayout();
this.groupInout.SuspendLayout();
this.tabPage6.SuspendLayout();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
......@@ -460,7 +465,7 @@
this.groupBox6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox6.Location = new System.Drawing.Point(8, 119);
this.groupBox6.Name = "groupBox6";
this.groupBox6.Size = new System.Drawing.Size(1230, 286);
this.groupBox6.Size = new System.Drawing.Size(1230, 276);
this.groupBox6.TabIndex = 302;
this.groupBox6.TabStop = false;
this.groupBox6.Text = "批量上下料操作";
......@@ -608,6 +613,7 @@
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Controls.Add(this.tabPage5);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage6);
this.tabControl1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tabControl1.Location = new System.Drawing.Point(4, 33);
this.tabControl1.Name = "tabControl1";
......@@ -652,6 +658,7 @@
//
// tabPage5
//
this.tabPage5.Controls.Add(this.pictureBox1);
this.tabPage5.Controls.Add(this.groupBox6);
this.tabPage5.Controls.Add(this.groupBox3);
this.tabPage5.Location = new System.Drawing.Point(4, 30);
......@@ -661,6 +668,19 @@
this.tabPage5.Text = "设备信息";
this.tabPage5.UseVisualStyleBackColor = true;
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.Gainsboro;
this.pictureBox1.Location = new System.Drawing.Point(8, 401);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(411, 234);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 303;
this.pictureBox1.TabStop = false;
this.pictureBox1.Visible = false;
this.pictureBox1.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_Click);
//
// groupBox3
//
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
......@@ -1982,6 +2002,25 @@
this.btnUpDownP4.UseVisualStyleBackColor = true;
this.btnUpDownP4.Click += new System.EventHandler(this.btnUpDownP4_Click);
//
// tabPage6
//
this.tabPage6.Controls.Add(this.uc_boxdebug1);
this.tabPage6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tabPage6.Location = new System.Drawing.Point(4, 30);
this.tabPage6.Name = "tabPage6";
this.tabPage6.Padding = new System.Windows.Forms.Padding(3);
this.tabPage6.Size = new System.Drawing.Size(1249, 659);
this.tabPage6.TabIndex = 6;
this.tabPage6.Text = "库位调试";
this.tabPage6.UseVisualStyleBackColor = true;
//
// uc_boxdebug1
//
this.uc_boxdebug1.Location = new System.Drawing.Point(6, 6);
this.uc_boxdebug1.Name = "uc_boxdebug1";
this.uc_boxdebug1.Size = new System.Drawing.Size(1076, 596);
this.uc_boxdebug1.TabIndex = 0;
//
// menuStrip1
//
this.menuStrip1.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
......@@ -2017,67 +2056,67 @@
// 启动ToolStripMenuItem
//
this.启动ToolStripMenuItem.Name = "启动ToolStripMenuItem";
this.启动ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.启动ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.启动ToolStripMenuItem.Text = "启动";
this.启动ToolStripMenuItem.Click += new System.EventHandler(this.启动ToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator1.Size = new System.Drawing.Size(141, 6);
//
// 停止ToolStripMenuItem
//
this.停止ToolStripMenuItem.Name = "停止ToolStripMenuItem";
this.停止ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.停止ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.停止ToolStripMenuItem.Text = "停止";
this.停止ToolStripMenuItem.Click += new System.EventHandler(this.停止ToolStripMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator2.Size = new System.Drawing.Size(141, 6);
//
// 复位ToolStripMenuItem
//
this.复位ToolStripMenuItem.Name = "复位ToolStripMenuItem";
this.复位ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.复位ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.复位ToolStripMenuItem.Text = "复位";
this.复位ToolStripMenuItem.Click += new System.EventHandler(this.复位ToolStripMenuItem_Click);
//
// toolStripSeparator15
//
this.toolStripSeparator15.Name = "toolStripSeparator15";
this.toolStripSeparator15.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator15.Size = new System.Drawing.Size(141, 6);
//
// 上料模块复位ToolStripMenuItem
//
this.上料模块复位ToolStripMenuItem.Name = "上料模块复位ToolStripMenuItem";
this.上料模块复位ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.上料模块复位ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.上料模块复位ToolStripMenuItem.Text = "轴5复位";
this.上料模块复位ToolStripMenuItem.Click += new System.EventHandler(this.上料模块复位ToolStripMenuItem_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator3.Size = new System.Drawing.Size(141, 6);
//
// 回待机点ToolStripMenuItem
//
this.回待机点ToolStripMenuItem.Name = "回待机点ToolStripMenuItem";
this.回待机点ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.回待机点ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.回待机点ToolStripMenuItem.Text = "回待机点";
this.回待机点ToolStripMenuItem.Click += new System.EventHandler(this.回待机点ToolStripMenuItem_Click);
//
// toolStripSeparator4
//
this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator4.Size = new System.Drawing.Size(141, 6);
//
// 退出ToolStripMenuItem
//
this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem";
this.退出ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.退出ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.退出ToolStripMenuItem.Text = "退出系统";
this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click);
//
......@@ -2257,67 +2296,67 @@
// 轴卡点动ToolStripMenuItem
//
this.轴卡点动ToolStripMenuItem.Name = "轴卡点动ToolStripMenuItem";
this.轴卡点动ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.轴卡点动ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.轴卡点动ToolStripMenuItem.Text = "运动轴调试";
this.轴卡点动ToolStripMenuItem.Click += new System.EventHandler(this.轴卡点动ToolStripMenuItem_Click);
//
// toolStripSeparator9
//
this.toolStripSeparator9.Name = "toolStripSeparator9";
this.toolStripSeparator9.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator9.Size = new System.Drawing.Size(166, 6);
//
// 升降轴位置调试ToolStripMenuItem
//
this.升降轴位置调试ToolStripMenuItem.Name = "升降轴位置调试ToolStripMenuItem";
this.升降轴位置调试ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.升降轴位置调试ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.升降轴位置调试ToolStripMenuItem.Text = "轴2位置调试";
this.升降轴位置调试ToolStripMenuItem.Click += new System.EventHandler(this.升降轴位置调试ToolStripMenuItem_Click);
//
// toolStripSeparator11
//
this.toolStripSeparator11.Name = "toolStripSeparator11";
this.toolStripSeparator11.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator11.Size = new System.Drawing.Size(166, 6);
//
// 扫码测试ToolStripMenuItem
//
this.扫码测试ToolStripMenuItem.Name = "扫码测试ToolStripMenuItem";
this.扫码测试ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.扫码测试ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.扫码测试ToolStripMenuItem.Text = "扫码测试";
this.扫码测试ToolStripMenuItem.Click += new System.EventHandler(this.扫码测试ToolStripMenuItem_Click);
//
// toolStripSeparator10
//
this.toolStripSeparator10.Name = "toolStripSeparator10";
this.toolStripSeparator10.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator10.Size = new System.Drawing.Size(166, 6);
//
// 摄像机调试ToolStripMenuItem
//
this.摄像机调试ToolStripMenuItem.Name = "摄像机调试ToolStripMenuItem";
this.摄像机调试ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.摄像机调试ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.摄像机调试ToolStripMenuItem.Text = "条码学习";
this.摄像机调试ToolStripMenuItem.Click += new System.EventHandler(this.摄像机调试ToolStripMenuItem_Click);
//
// toolStripSeparator20
//
this.toolStripSeparator20.Name = "toolStripSeparator20";
this.toolStripSeparator20.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator20.Size = new System.Drawing.Size(166, 6);
//
// 出入库调试ToolStripMenuItem
//
this.出入库调试ToolStripMenuItem.Name = "出入库调试ToolStripMenuItem";
this.出入库调试ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.出入库调试ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.出入库调试ToolStripMenuItem.Text = "启用调试";
this.出入库调试ToolStripMenuItem.Click += new System.EventHandler(this.出入库调试ToolStripMenuItem_Click);
//
// toolStripSeparator23
//
this.toolStripSeparator23.Name = "toolStripSeparator23";
this.toolStripSeparator23.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator23.Size = new System.Drawing.Size(166, 6);
//
// 打开日志ToolStripMenuItem
//
this.打开日志ToolStripMenuItem.Name = "打开日志ToolStripMenuItem";
this.打开日志ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.打开日志ToolStripMenuItem.Size = new System.Drawing.Size(169, 26);
this.打开日志ToolStripMenuItem.Text = "打开日志";
this.打开日志ToolStripMenuItem.Click += new System.EventHandler(this.打开日志ToolStripMenuItem_Click);
//
......@@ -2336,31 +2375,31 @@
// 清理日志ToolStripMenuItem
//
this.清理日志ToolStripMenuItem.Name = "清理日志ToolStripMenuItem";
this.清理日志ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.清理日志ToolStripMenuItem.Size = new System.Drawing.Size(112, 26);
this.清理日志ToolStripMenuItem.Text = "中文";
this.清理日志ToolStripMenuItem.Click += new System.EventHandler(this.清理日志ToolStripMenuItem_Click);
//
// toolStripSeparator12
//
this.toolStripSeparator12.Name = "toolStripSeparator12";
this.toolStripSeparator12.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator12.Size = new System.Drawing.Size(109, 6);
//
// 英文ToolStripMenuItem
//
this.英文ToolStripMenuItem.Name = "英文ToolStripMenuItem";
this.英文ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.英文ToolStripMenuItem.Size = new System.Drawing.Size(112, 26);
this.英文ToolStripMenuItem.Text = "英文";
this.英文ToolStripMenuItem.Click += new System.EventHandler(this.开启DEBUGToolStripMenuItem_Click);
//
// toolStripSeparator22
//
this.toolStripSeparator22.Name = "toolStripSeparator22";
this.toolStripSeparator22.Size = new System.Drawing.Size(177, 6);
this.toolStripSeparator22.Size = new System.Drawing.Size(109, 6);
//
// toolStripMenuItem6
//
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(180, 26);
this.toolStripMenuItem6.Size = new System.Drawing.Size(112, 26);
this.toolStripMenuItem6.Text = "日语";
this.toolStripMenuItem6.Click += new System.EventHandler(this.toolStripMenuItem6_Click);
//
......@@ -2389,6 +2428,7 @@
this.tabControl1.ResumeLayout(false);
this.tabPage4.ResumeLayout(false);
this.tabPage5.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.groupBox3.ResumeLayout(false);
this.groupBox3.PerformLayout();
this.tabPage2.ResumeLayout(false);
......@@ -2401,6 +2441,7 @@
this.groupAxis.PerformLayout();
this.groupInout.ResumeLayout(false);
this.groupInout.PerformLayout();
this.tabPage6.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
......@@ -2602,6 +2643,9 @@
private System.Windows.Forms.PictureBox picPPoint;
private System.Windows.Forms.PictureBox picAxis4;
private System.Windows.Forms.CheckBox chbDebug;
private System.Windows.Forms.TabPage tabPage6;
private ACSingleStore.useControl.uc_boxdebug uc_boxdebug1;
private System.Windows.Forms.PictureBox pictureBox1;
}
}
......@@ -25,6 +25,7 @@ namespace OnlineStore.AutoInOutStore
private AC_SA_BoxBean store;
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
HIKCamera camera = new HIKCamera();
public FrmStoreBox()
{
Control.CheckForIllegalCrossThreadCalls = false;
......@@ -39,6 +40,15 @@ namespace OnlineStore.AutoInOutStore
private void initValue()
{
InitStoreValue();
camera.camera_event += Camera_camera_event;
camera.LoadCameraConfig();
}
private void Camera_camera_event(object sender, Bitmap e)
{
this.Invoke((EventHandler<Bitmap>)delegate {
pictureBox1.Visible = true;
pictureBox1.Image = e;
}, sender, e);
}
private void InitStoreValue()
{
......@@ -48,7 +58,7 @@ namespace OnlineStore.AutoInOutStore
LogUtil.error(LOGGER, "找不到对应的料仓");
return;
}
uc_boxdebug1.Init(store);
cmbAxisList.DataSource = new List<ConfigMoveAxis>(store.moveAxisList);
cmbAxisList.DisplayMember = "Explain";
cmbAxisList.ValueMember = "Explain";
......@@ -207,7 +217,6 @@ namespace OnlineStore.AutoInOutStore
启动ToolStripMenuItem.Enabled = !isOpen;
停止ToolStripMenuItem.Enabled = isOpen;
复位ToolStripMenuItem.Enabled = isOpen;
}
private bool LoadOk = false;
private void FrmTest_Load(object sender, EventArgs e)
......@@ -229,13 +238,14 @@ namespace OnlineStore.AutoInOutStore
this.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
HideForm();
initValue();
CodeManager.LoadConfig();
this.toolStripMenuItem4.Visible = StoreManager.HasDisableDoorControl;
this.toolStripMenuItem5.Visible = StoreManager.HasDisableDoorControl;
this.toolStripSeparator16.Visible = StoreManager.HasDisableDoorControl;
this.toolStripSeparator18.Visible = StoreManager.HasDisableDoorControl;
txtTempPort.Text = store.Config.Humiture_Port;
LoadOk = true;
chbDebug.Checked = store.IsDebug;
LoadOk = true;
// cmbHomeType.SelectedIndex = 1;
timer1.Start();
store.ResetEvent += Store_ResetEvent;
......@@ -1266,7 +1276,12 @@ namespace OnlineStore.AutoInOutStore
return;
}
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.HIGH);
CodeLibrary.FrmCodeDecode frm = new FrmCodeDecode(false,false );
if (Camera._cam != null)
{
Camera._cam.CloseAll();
}
CodeLibrary.FrmCodeDecode frm = new FrmCodeDecode();
frm.chbZxing.Checked = false;
frm.ShowDialog();
IOManager.IOMove(IO_Type.CameraLight_Power, IO_VALUE.LOW);
}
......@@ -1501,7 +1516,8 @@ namespace OnlineStore.AutoInOutStore
出入库调试ToolStripMenuItem.Text = ResourceCulture.GetString("启用调试", "启用调试");
}
groupAxis.Enabled = status;
// groupComAxis.Enabled = status;
uc_boxdebug1.Enabled = status;
// groupComAxis.Enabled = status;
//groupInout.Enabled = status;
if (!status)
{
......@@ -1514,7 +1530,7 @@ namespace OnlineStore.AutoInOutStore
btnSave.Enabled =false ;
checkBox1.Enabled =false ;
btnOutStore.Enabled = false;
btnBatchOutTest.Enabled = false;
btnBatchOutTest.Enabled = false;
}
else
{
......@@ -1718,5 +1734,24 @@ namespace OnlineStore.AutoInOutStore
StoreManager.UpdateBoxConfig(store.Config);
}
}
private void pictureBox1_DoubleClick(object sender, EventArgs e)
{
var obj = sender as PictureBox;
if (obj.Dock == DockStyle.Fill)
obj.Dock = DockStyle.None;
else
{
obj.BringToFront();
obj.Dock = DockStyle.Fill;
}
}
private void pictureBox1_Click(object sender, MouseEventArgs e)
{
var obj = sender as PictureBox;
if (obj.Dock == DockStyle.Fill)
obj.Dock = DockStyle.None;
}
}
}
......@@ -53,6 +53,7 @@ namespace OnlineStore.AutoInOutStore
[STAThread]
static void Main(string[] Args)
{
Environment.CurrentDirectory = Application.StartupPath;
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
......@@ -94,6 +95,7 @@ namespace OnlineStore.AutoInOutStore
if (!isShow)
{
XmlConfigurator.Configure();
Environment.CurrentDirectory = Application.StartupPath;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
#if PositionTool
......
......@@ -1212,4 +1212,10 @@
<data name="InstoreInfo" xml:space="preserve">
<value> batch storage and retrieval info: storage: </value>
</data>
<data name="FrmStoreBox_tabPage6_Text" xml:space="preserve">
<value>Storage Adjust</value>
</data>
<data name="FrmStoreBox_tabPage6_Text1" xml:space="preserve">
<value>Storage location</value>
</data>
</root>
\ No newline at end of file
......@@ -1215,4 +1215,7 @@
<data name="InstoreInfo" xml:space="preserve">
<value> マルチ入出庫情報:入庫: </value>
</data>
<data name="FrmStoreBox_tabPage6_Text" xml:space="preserve">
<value>ロケーションデバッグ</value>
</data>
</root>
\ No newline at end of file
......@@ -117,737 +117,1105 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name = "名称" xml:space = "preserve">
<value> 中文 </value> </data>
<data name = "AbsMove" xml:space = "preserve">
<value> 绝对运动 </value> </data>
<data name = "Alarm" xml:space = "preserve">
<value> 报警 </value> </data>
<data name = "AutoEnd" xml:space = "preserve">
<value> 自动出入库结束 </value> </data>
<data name = "AutoIn" xml:space = "preserve">
<value> 自动入库: </value> </data>
<data name = "AutoOut" xml:space = "preserve">
<value> 自动出库: </value> </data>
<data name = "AutoReset" xml:space = "preserve">
<value> 收到复位信号,自动复位 </value> </data>
<data name = "AxisAlarm" xml:space = "preserve">
<value> 运动轴{0}报警 </value> </data>
<data name = "AxisHomeMoveAlarm" xml:space = "preserve">
<value> 运动{0}轴{1}收到原点完成信号,当前位置[{2}],误差过大! </value> </data>
<data name = "AxisMoveAlarm" xml:space = "preserve">
<value> 运动{0}轴{1}目标位置[{2}]当前位置{3}误差过大! </value> </data>
<data name = "Batch_Axis" xml:space = "preserve">
<value> 轴5 </value> </data>
<data name = "batchInError" xml:space = "preserve">
<value> 批量入库失败:请确认批量门是否闭合! </value> </data>
<data name = "batchInError2" xml:space = "preserve">
<value> 批量入库失败:请检查物料夹取机构是否有异物! </value> </data>
<data name = "BatchStop" xml:space = "preserve">
<value> 轴5运动停止 </value> </data>
<data name = "Busy" xml:space = "preserve">
<value> 设备运行中 </value> </data>
<data name = "CanotBack" xml:space = "preserve">
<value> 当前设备状态无需回待机点,若您需要强制回待机点,请先按下急停,再回待机点! </value> </data>
<data name = "CanotReset" xml:space = "preserve">
<value> 当前设备状态无需复位,若您需要强制复位,请先按下急停,再进行复位! </value> </data>
<data name = "CloseError" xml:space = "preserve">
<value> 锁门失败:请确认批量门是否闭合! </value> </data>
<data name = "CnotOpen" xml:space = "preserve">
<value> 设备运行中,禁止打开批量门! </value> </data>
<data name = "Comp_Axis" xml:space = "preserve">
<value> 轴4 </value> </data>
<data name = "Debugging" xml:space = "preserve">
<value> 设备处于调试模式中 </value> </data>
<data name = "doorClose" xml:space = "preserve">
<value> 批量门已关闭 </value> </data>
<data name = "doorOpen" xml:space = "preserve">
<value> 批量门已打开 </value> </data>
<data name = "Fail" xml:space = "preserve">
<value> 操作失败 </value> </data>
<data name = "FrmAxisDebug_btnAutoMove_Text" xml:space = "preserve">
<value> 轴5 向上 </value> </data>
<data name = "FrmAxisDebug_btnAutoMovej_Text" xml:space = "preserve">
<value> 轴5 向下 </value> </data>
<data name = "FrmAxisDebug_btnComMove_Text" xml:space = "preserve">
<value> 轴4 向下 </value> </data>
<data name = "FrmAxisDebug_btnComMovej_Text" xml:space = "preserve">
<value> 轴4 向上 </value> </data>
<data name = "FrmAxisDebug_btnInOutMove_Text" xml:space = "preserve">
<value> 轴3 前进 </value> </data>
<data name = "FrmAxisDebug_btnInOutMovej_Text" xml:space = "preserve">
<value> 轴3 后退 </value> </data>
<data name = "FrmAxisDebug_btnMiddleMove_Text" xml:space = "preserve">
<value> 轴1 顺时针 </value> </data>
<data name = "FrmAxisDebug_btnMiddleMovej_Text" xml:space = "preserve">
<value> 轴1 逆时针 </value> </data>
<data name = "FrmAxisDebug_btnUpdate_Text" xml:space = "preserve">
<value> 更新坐标 </value> </data>
<data name = "FrmAxisDebug_btnUpDownMove_Text" xml:space = "preserve">
<value> 轴2 上升 </value> </data>
<data name = "FrmAxisDebug_btnUpDownMovej_Text" xml:space = "preserve">
<value> 轴2 下降 </value> </data>
<data name = "FrmAxisDebug_button1_Text" xml:space = "preserve">
<value> 关闭 </value> </data>
<data name = "FrmAxisDebug_label1_Text" xml:space = "preserve">
<value> (轴1)旋转轴 </value> </data>
<data name = "FrmAxisDebug_label2_Text" xml:space = "preserve">
<value> (轴2)升降轴 </value> </data>
<data name = "FrmAxisDebug_label3_Text" xml:space = "preserve">
<value> (轴3)进出轴 </value> </data>
<data name = "FrmAxisDebug_label4_Text" xml:space = "preserve">
<value> (轴4)压紧轴 </value> </data>
<data name = "FrmAxisDebug_label5_Text" xml:space = "preserve">
<value> 转速(r/min) </value> </data>
<data name = "FrmAxisDebug_label6_Text" xml:space = "preserve">
<value> 实时坐标 </value> </data>
<data name = "FrmAxisDebug_label7_Text" xml:space = "preserve">
<value> (轴5)批量上下料轴 </value> </data>
<data name = "FrmAxisDebug_Text" xml:space = "preserve">
<value> 运动轴调试 </value> </data>
<data name = "FrmIOStatus_btnCloseAxisBreak_Text" xml:space = "preserve">
<value> 关闭轴2刹车 </value> </data>
<data name = "FrmIOStatus_btnCloseDeviceLed_Text" xml:space = "preserve">
<value> 关闭设备照明 </value> </data>
<data name = "FrmIOStatus_btnCloseDoor_Text" xml:space = "preserve">
<value> 关闭单料门 </value> </data>
<data name = "FrmIOStatus_btnCloseLed_Text" xml:space = "preserve">
<value> 关闭相机辅助光源 </value> </data>
<data name = "FrmIOStatus_btnDClose_Text" xml:space = "preserve">
<value> 批量门上锁 </value> </data>
<data name = "FrmIOStatus_btnDisDoorClose_Text" xml:space = "preserve">
<value> 激活维护门警报 </value> </data>
<data name = "FrmIOStatus_btnDisDoorOpen_Text" xml:space = "preserve">
<value> 关闭维护门警报 </value> </data>
<data name = "FrmIOStatus_btnDOpen_Text" xml:space = "preserve">
<value> 批量门解锁 </value> </data>
<data name = "FrmIOStatus_btnOpenAxisBreak_Text" xml:space = "preserve">
<value> 开启轴2刹车 </value> </data>
<data name = "FrmIOStatus_btnOpenDeviceLed_Text" xml:space = "preserve">
<value> 打开设备照明 </value> </data>
<data name = "FrmIOStatus_btnOpenDoor_Text" xml:space = "preserve">
<value> 打开单料门 </value> </data>
<data name = "FrmIOStatus_btnOpenLed_Text" xml:space = "preserve">
<value> 打开相机辅助光源 </value> </data>
<data name = "FrmIOStatus_btnSuckingDiscDown_Text" xml:space = "preserve">
<value> 分料机构下降 </value> </data>
<data name = "FrmIOStatus_btnSuckingDiscUp_Text" xml:space = "preserve">
<value> 分料机构上升 </value> </data>
<data name = "FrmIOStatus_btnSXi_Text" xml:space = "preserve">
<value> 抓取机构夹紧 </value> </data>
<data name = "FrmIOStatus_btnSXil_Text" xml:space = "preserve">
<value> 抓取机构放松 </value> </data>
<data name = "FrmIOStatus_btnWriteSingleDO_Text" xml:space = "preserve">
<value> 写入 </value> </data>
<data name = "FrmIOStatus_button1_Text" xml:space = "preserve">
<value> 关闭 </value> </data>
<data name = "FrmIOStatus_button4_Text" xml:space = "preserve">
<value> 关闭进气口 </value> </data>
<data name = "FrmIOStatus_button5_Text" xml:space = "preserve">
<value> 开启进气口 </value> </data>
<data name = "FrmIOStatus_groupBox1_Text" xml:space = "preserve">
<value> IO状态修改 </value> </data>
<data name = "FrmIOStatus_groupBox3_Text" xml:space = "preserve">
<value> IO列表 </value> </data>
<data name = "FrmIOStatus_groupBox4_Text" xml:space = "preserve">
<value> IO列表 </value> </data>
<data name = "FrmIOStatus_label14_Text" xml:space = "preserve">
<value> 地址: </value> </data>
<data name = "FrmIOStatus_label17_Text" xml:space = "preserve">
<value> 设备IP: </value> </data>
<data name = "FrmIOStatus_label3_Text" xml:space = "preserve">
<value> 端口: </value> </data>
<data name = "FrmIOStatus_label5_Text" xml:space = "preserve">
<value> 保持时间(ms): </value> </data>
<data name = "FrmIOStatus_radioButton1_Text" xml:space = "preserve">
<value> 打开 </value> </data>
<data name = "FrmIOStatus_radioButton2_Text" xml:space = "preserve">
<value> 关闭 </value> </data>
<data name = "FrmIOStatus_Text" xml:space = "preserve">
<value> IO信息 </value> </data>
<data name = "FrmPositionTool_btnAbsMove_Text" xml:space = "preserve">
<value> 开始运动 </value> </data>
<data name = "FrmPositionTool_btnClear_Text" xml:space = "preserve">
<value> 清除日志 </value> </data>
<data name = "FrmPositionTool_btnExit_Text" xml:space = "preserve">
<value> 退出 </value> </data>
<data name = "FrmPositionTool_btnGetActualPosition_Text" xml:space = "preserve">
<value> 读取位置 </value> </data>
<data name = "FrmPositionTool_btnHomeMove_Text" xml:space = "preserve">
<value> 返回原点 </value> </data>
<data name = "FrmPositionTool_btnOpenFolder_Text" xml:space = "preserve">
<value> 打开文件夹 </value> </data>
<data name = "FrmPositionTool_btnSdStop_Text" xml:space = "preserve">
<value> 停止 </value> </data>
<data name = "FrmPositionTool_btnServoOff_Text" xml:space = "preserve">
<value> 关闭 </value> </data>
<data name = "FrmPositionTool_btnServoOn_Text" xml:space = "preserve">
<value> 打开 </value> </data>
<data name = "FrmPositionTool_groupBox1_Text" xml:space = "preserve">
<value> 设备信息 </value> </data>
<data name = "FrmPositionTool_groupBox2_Text" xml:space = "preserve">
<value> 位置信息 </value> </data>
<data name = "FrmPositionTool_groupBox6_Text" xml:space = "preserve">
<value> 伺服运动测试 </value> </data>
<data name = "FrmPositionTool_label1_Text" xml:space = "preserve">
<value> IO模块IP: </value> </data>
<data name = "FrmPositionTool_label10_Text" xml:space = "preserve">
<value> 入料P4偏移量: </value> </data>
<data name = "FrmPositionTool_label12_Text" xml:space = "preserve">
<value> 端口号: </value> </data>
<data name = "FrmPositionTool_label13_Text" xml:space = "preserve">
<value> 位置: </value> </data>
<data name = "FrmPositionTool_label18_Text" xml:space = "preserve">
<value> 地址: </value> </data>
<data name = "FrmPositionTool_label2_Text" xml:space = "preserve">
<value> 传感器地址: </value> </data>
<data name = "FrmPositionTool_label3_Text" xml:space = "preserve">
<value> 位置文件名称: </value> </data>
<data name = "FrmPositionTool_label4_Text" xml:space = "preserve">
<value> 出料前点P5偏移值: </value> </data>
<data name = "FrmPositionTool_label5_Text" xml:space = "preserve">
<value> 出料缓冲点P6偏移量: </value> </data>
<data name = "FrmPositionTool_label6_Text" xml:space = "preserve">
<value> 目标位置: </value> </data>
<data name = "FrmPositionTool_label7_Text" xml:space = "preserve">
<value> 实际位置: </value> </data>
<data name = "FrmPositionTool_label8_Text" xml:space = "preserve">
<value> 转速(r/min): </value> </data>
<data name = "FrmPositionTool_label9_Text" xml:space = "preserve">
<value> 入料前点P3偏移量: </value> </data>
<data name = "FrmPositionTool_Text" xml:space = "preserve">
<value> 轴2测试 </value> </data>
<data name = "FrmPwd_btnBack_Text" xml:space = "preserve">
<value> 返回 </value> </data>
<data name = "FrmPwd_btnNext_Text" xml:space = "preserve">
<value> 确定 </value> </data>
<data name = "FrmPwd_label1_Text" xml:space = "preserve">
<value> 请输入密码: </value> </data>
<data name = "FrmPwd_Text" xml:space = "preserve">
<value> 请输入密码 </value> </data>
<data name = "FrmStoreBox_btnAxisAMove_Text" xml:space = "preserve">
<value> 绝对运动 </value> </data>
<data name = "FrmStoreBox_btnAxisReturnHome_Text" xml:space = "preserve">
<value> 返回原点 </value> </data>
<data name = "FrmStoreBox_btnAxisRMove_Text" xml:space = "preserve">
<value> 相对运动 </value> </data>
<data name = "FrmStoreBox_btnAxisStop_Text" xml:space = "preserve">
<value> 停止运动 </value> </data>
<data name = "FrmStoreBox_btnAxisVMove_Text" xml:space = "preserve">
<value> 匀速运动 </value> </data>
<data name = "FrmStoreBox_btnBatchInStore_Text" xml:space = "preserve">
<value> 开始批量入库 </value> </data>
<data name = "FrmStoreBox_btnBatchOutTest_Text" xml:space = "preserve">
<value> 批量出库测试 </value> </data>
<data name = "FrmStoreBox_btnBatchReset_Text" xml:space = "preserve">
<value> 批量上下料模块复位 </value> </data>
<data name = "FrmStoreBox_btnClearBuzzer_Text" xml:space = "preserve">
<value> 重置蜂鸣器 </value> </data>
<data name = "FrmStoreBox_btnClearLog_Text" xml:space = "preserve">
<value> 清除日志 </value> </data>
<data name = "FrmStoreBox_btnCloseAxis_Text" xml:space = "preserve">
<value> 关闭伺服 </value> </data>
<data name = "FrmStoreBox_btnCloseDoor_Text" xml:space = "preserve">
<value> 批量门上锁 </value> </data>
<data name = "FrmStoreBox_btnComAlarmClear_Text" xml:space = "preserve">
<value> 重置状态 </value> </data>
<data name = "FrmStoreBox_btnComP1_Text" xml:space = "preserve">
<value> 压紧轴待机点P1: </value> </data>
<data name = "FrmStoreBox_btnComP2_Text" xml:space = "preserve">
<value> 压紧轴压紧点P2: </value> </data>
<data name = "FrmStoreBox_btnComP3_Text" xml:space = "preserve">
<value> 压紧轴压紧前点P3: </value> </data>
<data name = "FrmStoreBox_btnCycleOut_Text" xml:space = "preserve">
<value> 启动演示模式 </value> </data>
<data name = "FrmStoreBox_btnGetAlarm_Text" xml:space = "preserve">
<value> 读取伺服状态 </value> </data>
<data name = "FrmStoreBox_btnGetOutTray_Text" xml:space = "preserve">
<value> 取出料盘 </value> </data>
<data name = "FrmStoreBox_btnHomeMove_Text" xml:space = "preserve">
<value> 返回原点 </value> </data>
<data name = "FrmStoreBox_btnInOutP1_Text" xml:space = "preserve">
<value> 进出轴待机点P1: </value> </data>
<data name = "FrmStoreBox_btnInOutP2_Text" xml:space = "preserve">
<value> 进出轴吸盘取料点P2: </value> </data>
<data name = "FrmStoreBox_btnInOutP3_Text" xml:space = "preserve">
<value> 进出轴库位取料点P3: </value> </data>
<data name = "FrmStoreBox_btnInOutP4_Text" xml:space = "preserve">
<value> 进出轴仓门出料点P4: </value> </data>
<data name = "FrmStoreBox_btnLineAbsMove_Text" xml:space = "preserve">
<value> 绝对运动 </value> </data>
<data name = "FrmStoreBox_btnMiddleP1_Text" xml:space = "preserve">
<value> 旋转轴待机点P1: </value> </data>
<data name = "FrmStoreBox_btnMiddleP2_Text" xml:space = "preserve">
<value> 旋转轴库位点P2: </value> </data>
<data name = "FrmStoreBox_btnOpenAxis_Text" xml:space = "preserve">
<value> 打开伺服 </value> </data>
<data name = "FrmStoreBox_btnOpenDoor_Text" xml:space = "preserve">
<value> 批量门解锁 </value> </data>
<data name = "FrmStoreBox_btnOutStore_Text" xml:space = "preserve">
<value> 单盘出库测试 </value> </data>
<data name = "FrmStoreBox_btnRelMove_Text" xml:space = "preserve">
<value> 相对运动 </value> </data>
<data name = "FrmStoreBox_btnSave_Text" xml:space = "preserve">
<value> 设为起始库位 </value> </data>
<data name = "FrmStoreBox_btnSavePosition_Text" xml:space = "preserve">
<value> 保存位置 </value> </data>
<data name = "FrmStoreBox_btnSaveSinglePosId_Text" xml:space = "preserve">
<value> 设为参考库位 </value> </data>
<data name = "FrmStoreBox_btnSelTemp_Text" xml:space = "preserve">
<value> 读取 </value> </data>
<data name = "FrmStoreBox_btnSingleTrayIn_Text" xml:space = "preserve">
<value> 启动单盘入库 </value> </data>
<data name = "FrmStoreBox_btnStart_Text" xml:space = "preserve">
<value> 开始自动出入库 </value> </data>
<data name = "FrmStoreBox_btnTempClose_Text" xml:space = "preserve">
<value> 断开 </value> </data>
<data name = "FrmStoreBox_btnTempInit_Text" xml:space = "preserve">
<value> 连接 </value> </data>
<data name = "FrmStoreBox_btnUpDownDoor_Text" xml:space = "preserve">
<value> 升降轴仓门位置P7: </value> </data>
<data name = "FrmStoreBox_btnUpDownP1_Text" xml:space = "preserve">
<value> 升降轴吸盘下方取料点P1: </value> </data>
<data name = "FrmStoreBox_btnUpdownP2_Text" xml:space = "preserve">
<value> 升降轴出库高点P2: </value> </data>
<data name = "FrmStoreBox_btnUpDownP3_Text" xml:space = "preserve">
<value> 升降轴入料前点P3: </value> </data>
<data name = "FrmStoreBox_btnUpDownP4_Text" xml:space = "preserve">
<value> 升降轴入料缓冲点P4: </value> </data>
<data name = "FrmStoreBox_btnUpDownP5_Text" xml:space = "preserve">
<value> 升降轴出料前点P5: </value> </data>
<data name = "FrmStoreBox_btnUpDownP6_Text" xml:space = "preserve">
<value> 升降轴出料缓冲点P6: </value> </data>
<data name = "FrmStoreBox_btnUpDownP7_Text" xml:space = "preserve">
<value> 升降轴取料缓冲点P7: </value> </data>
<data name = "FrmStoreBox_btnUpdownP8_Text" xml:space = "preserve">
<value> 升降轴出库低点P8: </value> </data>
<data name = "FrmStoreBox_btnVolMove_Text" xml:space = "preserve">
<value> 匀速运动 </value> </data>
<data name = "FrmStoreBox_btnWaitTrgGo_Text" xml:space = "preserve">
<value> 关闭单料门 </value> </data>
<data name = "FrmStoreBox_chbAuto_Text" xml:space = "preserve">
<value> 开机自动启动 </value> </data>
<data name = "FrmStoreBox_chbAutoRead_Text" xml:space = "preserve">
<value> 位置自动更新 </value> </data>
<data name = "FrmStoreBox_checkBox1_Text" xml:space = "preserve">
<value> 手动模式 </value> </data>
<data name = "FrmStoreBox_groupAuto_Text" xml:space = "preserve">
<value> 出入库测试 </value> </data>
<data name = "FrmStoreBox_groupAxis_Text" xml:space = "preserve">
<value> 伺服调试 </value> </data>
<data name = "FrmStoreBox_groupBox3_Text" xml:space = "preserve">
<value> 设备状态 </value> </data>
<data name = "FrmStoreBox_groupBox6_Text" xml:space = "preserve">
<value> 批量上下料操作 </value> </data>
<data name = "FrmStoreBox_groupBox7_Text" xml:space = "preserve">
<value> 温湿度控制器调试 </value> </data>
<data name = "FrmStoreBox_groupInout_Text" xml:space = "preserve">
<value> 位置操作 </value> </data>
<data name = "FrmStoreBox_iO状态查看ToolStripMenuItem_Text" xml:space = "preserve">
<value> IO调试 </value> </data>
<data name = "FrmStoreBox_label10_Text" xml:space = "preserve">
<value> BUSY状态: </value> </data>
<data name = "FrmStoreBox_label11_Text" xml:space = "preserve">
<value> HOME-CMP状态: </value> </data>
<data name = "FrmStoreBox_label14_Text" xml:space = "preserve">
<value> 1=报警,0=正常 </value> </data>
<data name = "FrmStoreBox_label15_Text" xml:space = "preserve">
<value> 1=执行中,0=未执行 </value> </data>
<data name = "FrmStoreBox_label16_Text" xml:space = "preserve">
<value> 1=完成,0=未完成 </value> </data>
<data name = "FrmStoreBox_label2_Text" xml:space = "preserve">
<value> 报警状态: </value> </data>
<data name = "FrmStoreBox_label21_Text" xml:space = "preserve">
<value> 选择仓位: </value> </data>
<data name = "FrmStoreBox_label22_Text" xml:space = "preserve">
<value> 正极限信号: </value> </data>
<data name = "FrmStoreBox_label23_Text" xml:space = "preserve">
<value> 1=ON,0=OFF </value> </data>
<data name = "FrmStoreBox_label24_Text" xml:space = "preserve">
<value> 负极限信号: </value> </data>
<data name = "FrmStoreBox_label26_Text" xml:space = "preserve">
<value> 1=ON,0=OFF </value> </data>
<data name = "FrmStoreBox_label27_Text" xml:space = "preserve">
<value> 端口号: </value> </data>
<data name = "FrmStoreBox_label28_Text" xml:space = "preserve">
<value> 温度: </value> </data>
<data name = "FrmStoreBox_label29_Text" xml:space = "preserve">
<value> 湿度: </value> </data>
<data name = "FrmStoreBox_label30_Text" xml:space = "preserve">
<value> 入库存料库位间隔: </value> </data>
<data name = "FrmStoreBox_label45_Text" xml:space = "preserve">
<value> 端口号: </value> </data>
<data name = "FrmStoreBox_label46_Text" xml:space = "preserve">
<value> 伺服地址: </value> </data>
<data name = "FrmStoreBox_label47_Text" xml:space = "preserve">
<value> 转速(r/min): </value> </data>
<data name = "FrmStoreBox_label48_Text" xml:space = "preserve">
<value> 位置: </value> </data>
<data name = "FrmStoreBox_label49_Text" xml:space = "preserve">
<value> 选择伺服: </value> </data>
<data name = "FrmStoreBox_label5_Text" xml:space = "preserve">
<value> 1=ON,0=OFF </value> </data>
<data name = "FrmStoreBox_label6_Text" xml:space = "preserve">
<value> 原点信号: </value> </data>
<data name = "FrmStoreBox_label7_Text" xml:space = "preserve">
<value> 输出脉冲值: </value> </data>
<data name = "FrmStoreBox_label8_Text" xml:space = "preserve">
<value> 编码器计数: </value> </data>
<data name = "FrmStoreBox_lblBatchStatus_Text" xml:space = "preserve">
<value> 等待启动 </value> </data>
<data name = "FrmStoreBox_lblDoorStatus_Text" xml:space = "preserve">
<value> 批量门状态:关闭中 </value> </data>
<data name = "FrmStoreBox_lblMsg_Text" xml:space = "preserve">
<value> 未启动自动出入库 </value> </data>
<data name = "FrmStoreBox_lblOutInfo_Text" xml:space = "preserve">
<value> 出库计数 </value> </data>
<data name = "FrmStoreBox_lblTemp_Text" xml:space = "preserve">
<value> 当前温度--,当前湿度-- </value> </data>
<data name = "FrmStoreBox_lblThisSta_Text" xml:space = "preserve">
<value> 设备未启动 </value> </data>
<data name = "FrmStoreBox_lblWaitTragGo_Text" xml:space = "preserve">
<value> 请处理料盘,并点击关闭单料门按钮。 </value> </data>
<data name = "FrmStoreBox_tabPage1_Text" xml:space = "preserve">
<value> 温湿度调试 </value> </data>
<data name = "FrmStoreBox_tabPage2_Text" xml:space = "preserve">
<value> 设备调试 </value> </data>
<data name = "FrmStoreBox_tabPage5_Text" xml:space = "preserve">
<value> 设备信息 </value> </data>
<data name = "FrmStoreBox_tabPage4_Text" xml:space = "preserve">
<value> 日志 </value> </data>
<data name = "FrmStoreBox_Text" xml:space = "preserve">
<value> 云料仓 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem1_Text" xml:space = "preserve">
<value> 退出 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem2_Text" xml:space = "preserve">
<value> 打开相机辅助光源 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem3_Text" xml:space = "preserve">
<value> 关闭相机辅助光源 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem4_Text" xml:space = "preserve">
<value> 维护门警报屏蔽 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem5_Text" xml:space = "preserve">
<value> 维护门警报打开 </value> </data>
<data name = "FrmStoreBox_toolStripMenuItem6_Text" xml:space = "preserve">
<value> 日语 </value> </data>
<data name = "FrmStoreBox_查看IOToolStripMenuItem_Text" xml:space = "preserve">
<value> 查看IO </value> </data>
<data name = "FrmStoreBox_出入库调试ToolStripMenuItem_Text" xml:space = "preserve">
<value> 启用调试模式 </value> </data>
<data name = "FrmStoreBox_打开舱门ToolStripMenuItem_Text" xml:space = "preserve">
<value> 打开单料门 </value> </data>
<data name = "FrmStoreBox_复位ToolStripMenuItem_Text" xml:space = "preserve">
<value> 复位 </value> </data>
<data name = "FrmStoreBox_关闭仓门ToolStripMenuItem_Text" xml:space = "preserve">
<value> 关闭单料门 </value> </data>
<data name = "FrmStoreBox_回待机点ToolStripMenuItem_Text" xml:space = "preserve">
<value> 回待机点 </value> </data>
<data name = "FrmStoreBox_料仓操作ToolStripMenuItem_Text" xml:space = "preserve">
<value> 设备 </value> </data>
<data name = "FrmStoreBox_料仓运转OFFToolStripMenuItem_Text" xml:space = "preserve">
<value> 打开伺服 </value> </data>
<data name = "FrmStoreBox_料仓运转ONToolStripMenuItem_Text" xml:space = "preserve">
<value> 关闭伺服 </value> </data>
<data name = "FrmStoreBox_批量上下轴OFFToolStripMenuItem_Text" xml:space = "preserve">
<value> 打开轴5 </value> </data>
<data name = "FrmStoreBox_批量上下轴ONToolStripMenuItem_Text" xml:space = "preserve">
<value> 关闭轴5 </value> </data>
<data name = "FrmStoreBox_启动ToolStripMenuItem_Text" xml:space = "preserve">
<value> 启动 </value> </data>
<data name = "FrmStoreBox_清理日志ToolStripMenuItem_Text" xml:space = "preserve">
<value> 中文 </value> </data>
<data name = "FrmStoreBox_扫码测试ToolStripMenuItem_Text" xml:space = "preserve">
<value> 扫码测试 </value> </data>
<data name = "FrmStoreBox_上料模块复位ToolStripMenuItem_Text" xml:space = "preserve">
<value> 轴5复位 </value> </data>
<data name = "FrmStoreBox_设备调试ToolStripMenuItem_Text" xml:space = "preserve">
<value> 功能调试 </value> </data>
<data name = "FrmStoreBox_摄像机调试ToolStripMenuItem_Text" xml:space = "preserve">
<value> 条码学习 </value> </data>
<data name = "FrmStoreBox_升降轴位置调试ToolStripMenuItem_Text" xml:space = "preserve">
<value> 轴2位置调试 </value> </data>
<data name = "FrmStoreBox_停止ToolStripMenuItem_Text" xml:space = "preserve">
<value> 停止 </value> </data>
<data name = "FrmStoreBox_退出ToolStripMenuItem_Text" xml:space = "preserve">
<value> 退出系统 </value> </data>
<data name = "FrmStoreBox_显示ToolStripMenuItem_Text" xml:space = "preserve">
<value> 显示界面 </value> </data>
<data name = "FrmStoreBox_英文ToolStripMenuItem_Text" xml:space = "preserve">
<value> 英文 </value> </data>
<data name = "FrmStoreBox_语言_Text" xml:space = "preserve">
<value> 语言 </value> </data>
<data name = "FrmStoreBox_轴卡点动ToolStripMenuItem_Text" xml:space = "preserve">
<value> 运动轴调试 </value> </data>
<data name = "FuLimit" xml:space = "preserve">
<value> 负限位 </value> </data>
<data name = "GetError" xml:space = "preserve">
<value> 取出料盘操作失败:无料盘 </value> </data>
<data name = "GetError2" xml:space = "preserve">
<value> 取出料盘操作失败:设备工作中,批量门无法解锁 </value> </data>
<data name = "HasWare" xml:space = "preserve">
<value> 夹取机构检测有料,请检查! </value> </data>
<data name = "HomeMove" xml:space = "preserve">
<value> 返回原点 </value> </data>
<data name = "InOut_Axis" xml:space = "preserve">
<value> (轴3)进出轴 </value> </data>
<data name = "InoutAlarm" xml:space = "preserve">
<value> 轴3报警!复位失败,请检查! </value> </data>
<data name = "InoutNotOk" xml:space = "preserve">
<value> 请先将轴3退回待机位! </value> </data>
<data name = "InoutWarn" xml:space = "preserve">
<value> 警告(轴3在待机位时,才能移动轴2和轴1) </value> </data>
<data name = "InStoreEnd" xml:space = "preserve">
<value> 料盘到达库位 </value> </data>
<data name = "InStoreError" xml:space = "preserve">
<value> 入库库位格式错误:条码[{0}],库位号[{1}] </value> </data>
<data name = "InStoreExecute" xml:space = "preserve">
<value> 入库执行中 </value> </data>
<data name = "InStoreFailed" xml:space = "preserve">
<value> 入库失败 </value> </data>
<data name = "InStoreNoCode" xml:space = "preserve">
<value> 未扫到条码,料盘将到达单料门 </value> </data>
<data name = "InStoreNoPosition" xml:space = "preserve">
<value> 入库未找到库位:条码[{0}],库位号[{1}] </value> </data>
<data name = "inSuddenStop" xml:space = "preserve">
<value> 设备急停 </value> </data>
<data name = "Middle_Axis" xml:space = "preserve">
<value> (轴1)旋转轴 </value> </data>
<data name = "MoveTimeOut" xml:space = "preserve">
<value> [{0}]超时{1}[{2}] </value> </data>
<data name = "MsgTitle" xml:space = "preserve">
<value> 提示 </value> </data>
<data name = "NO_Clamping_Check" xml:space = "preserve">
<value> 分料机构气缸料盘检测无信号 </value> </data>
<data name = "NoAIr" xml:space = "preserve">
<value> 未检测到气压信号 </value> </data>
<data name = "NoCodeMsg" xml:space = "preserve">
<value> 未扫到条码,请重新放入料盘! </value> </data>
<data name = "OpenAxisFail" xml:space = "preserve">
<value> 打开轴{0}失败 </value> </data>
<data name = "oustore" xml:space = "preserve">
<value> 出库: </value> </data>
<data name = "OutFull" xml:space = "preserve">
<value> 料盘已放满,请取出! </value> </data>
<data name = "OutMoveExecute" xml:space = "preserve">
<value> 出库完成 </value> </data>
<data name = "OutStoreBoxEnd" xml:space = "preserve">
<value> 料盘已离开库位 </value> </data>
<data name = "OutStoreError" xml:space = "preserve">
<value> 出库失败:库位号{0}格式错误 </value> </data>
<data name = "OutStoreExecute" xml:space = "preserve">
<value> 出库执行中 </value> </data>
<data name = "OutStoreFailed" xml:space = "preserve">
<value> 出库失败 </value> </data>
<data name = "OutStoreNoPosition" xml:space = "preserve">
<value> 出库失败:未找到库位{0} </value> </data>
<data name = "PCloseDoor" xml:space = "preserve">
<value> 请先关闭批量门! </value> </data>
<data name = "PleaseStartStore" xml:space = "preserve">
<value> 请先启动料仓! </value> </data>
<data name = "PWPwd" xml:space = "preserve">
<value> 密码错误,请输入正确的密码 </value> </data>
<data name = "PWSpeed" xml:space = "preserve">
<value> 请输入正确的速度! </value> </data>
<data name = "Reset" xml:space = "preserve">
<value> 复位中 </value> </data>
<data name = "Run" xml:space = "preserve">
<value> 待机中 </value> </data>
<data name = "Runing" xml:space = "preserve">
<value> 待机中 </value> </data>
<data name = "SaveError" xml:space = "preserve">
<value> 保存失败 </value> </data>
<data name = "SaveOk" xml:space = "preserve">
<value> 保存成功 </value> </data>
<data name = "ScanOk" xml:space = "preserve">
<value> 扫码结束 </value> </data>
<data name = "ServoOff" xml:space = "preserve">
<value> 关闭伺服 </value> </data>
<data name = "servoON" xml:space = "preserve">
<value> 打开伺服 </value> </data>
<data name = "StartAuto" xml:space = "preserve">
<value> 开始自动出入库 </value> </data>
<data name = "StartCycle" xml:space = "preserve">
<value> 开始循环出库 </value> </data>
<data name = "startFail" xml:space = "preserve">
<value> 启动失败:急停按钮未打开 </value> </data>
<data name = "startFailAir" xml:space = "preserve">
<value> 启动失败:未检测到气压信号 </value> </data>
<data name = "StopAuto" xml:space = "preserve">
<value> 停止自动出入库 </value> </data>
<data name = "StopCycle" xml:space = "preserve">
<value> 停止循环出库 </value> </data>
<data name = "StoreOnline" xml:space = "preserve">
<value> 设备联机中 </value> </data>
<data name = "SuddenStop" xml:space = "preserve">
<value> 设备急停中 </value> </data>
<data name = "SureExit" xml:space = "preserve">
<value> 是否确定退出? </value> </data>
<data name = "TakeTrayGo" xml:space = "preserve">
<value> 操作人员拿走料盘 </value> </data>
<data name = "TakeTrayOut" xml:space = "preserve">
<value> 关闭单料门 </value> </data>
<data name = "TheDoorOpen" xml:space = "preserve">
<value> 批量门未关闭,无法出库! </value> </data>
<data name = "TimeOut" xml:space = "preserve">
<value> 超时 </value> </data>
<data name = "UpDown_Axis" xml:space = "preserve">
<value> (轴2)升降轴 </value> </data>
<data name = "Wait" xml:space = "preserve">
<value> 设备未启动 </value> </data>
<data name = "WaitEnd" xml:space = "preserve">
<value> 等待NG料送到单料门完成 </value> </data>
<data name = "WaitInstoreTimeOut" xml:space = "preserve">
<value> [{0}]超时:[等待可以入库][{1}秒] </value> </data>
<data name = "WaitIo" xml:space = "preserve">
<value> IO信号等待 </value> </data>
<data name = "WaitSingleTimeOut" xml:space = "preserve">
<value> 等待信号{0}={1}超时 </value> </data>
<data name = "WaitStart" xml:space = "preserve">
<value> 设备未启动 </value> </data>
<data name = "WaitTime" xml:space = "preserve">
<value> 等待时间: </value> </data>
<data name = "WarnMsg" xml:space = "preserve">
<value> 警告 </value> </data>
<data name = "X01" xml:space = "preserve">
<value> 急停 </value> </data>
<data name = "X02" xml:space = "preserve">
<value> 复位 </value> </data>
<data name = "X03" xml:space = "preserve">
<value> 自动启动 </value> </data>
<data name = "X04" xml:space = "preserve">
<value> 安全光栅 </value> </data>
<data name = "X05" xml:space = "preserve">
<value> 单料门气缸上升到位信号 </value> </data>
<data name = "X06" xml:space = "preserve">
<value> 单料门气缸下降到位信号 </value> </data>
<data name = "X07" xml:space = "preserve">
<value> 分料机构气缸上升到位信号 </value> </data>
<data name = "X08" xml:space = "preserve">
<value> 分料机构气缸下降到位信号 </value> </data>
<data name = "X09" xml:space = "preserve">
<value> 料盘宽度检测1 </value> </data>
<data name = "X10" xml:space = "preserve">
<value> 料盘宽度检测2 </value> </data>
<data name = "X11" xml:space = "preserve">
<value> 料盘检测1(上料机构) </value> </data>
<data name = "X12" xml:space = "preserve">
<value> 上料机构出料检测 </value> </data>
<data name = "X13" xml:space = "preserve">
<value> 批量门锁气缸打开端 </value> </data>
<data name = "X14" xml:space = "preserve">
<value> 批量门锁气缸关闭端 </value> </data>
<data name = "X15" xml:space = "preserve">
<value> 料盘检测2(夹取机构) </value> </data>
<data name = "X21" xml:space = "preserve">
<value> 批量门关闭 </value> </data>
<data name = "X22" xml:space = "preserve">
<value> 气压检测 </value> </data>
<data name = "X23" xml:space = "preserve">
<value> 维护门1关闭 </value> </data>
<data name = "X24" xml:space = "preserve">
<value> 维护门2关闭 </value> </data>
<data name = "X25" xml:space = "preserve">
<value> 批量门锁气缸打开端2 </value> </data>
<data name = "X26" xml:space = "preserve">
<value> 批量门锁气缸关闭端2 </value> </data>
<data name = "X27" xml:space = "preserve">
<value> 轴5上极限 </value> </data>
<data name = "X28" xml:space = "preserve">
<value> 单料门料盘检测 </value> </data>
<data name = "X29" xml:space = "preserve">
<value> 抓取机构气缸夹紧端 </value> </data>
<data name = "X30" xml:space = "preserve">
<value> 抓取机构气缸放松端 </value> </data>
<data name = "X31" xml:space = "preserve">
<value> 分料机构气缸料盘检测 </value> </data>
<data name = "Y01" xml:space = "preserve">
<value> 自动指示灯 </value> </data>
<data name = "Y02" xml:space = "preserve">
<value> 故障指示灯 </value> </data>
<data name = "Y03" xml:space = "preserve">
<value> 待机指示灯 </value> </data>
<data name = "Y04" xml:space = "preserve">
<value> 进气口打开 </value> </data>
<data name = "Y05" xml:space = "preserve">
<value> 料仓伺服电源打开 </value> </data>
<data name = "Y06" xml:space = "preserve">
<value> 轴2刹车电源打开 </value> </data>
<data name = "Y07" xml:space = "preserve">
<value> 相机辅助光源打开 </value> </data>
<data name = "Y08" xml:space = "preserve">
<value> 设备照明打开 </value> </data>
<data name = "Y09" xml:space = "preserve">
<value> 单料门上升 </value> </data>
<data name = "Y10" xml:space = "preserve">
<value> 单料门下降 </value> </data>
<data name = "Y11" xml:space = "preserve">
<value> 分料机构气缸上升 </value> </data>
<data name = "Y12" xml:space = "preserve">
<value> 分料机构气缸下降 </value> </data>
<data name = "Y13" xml:space = "preserve">
<value> 批量门锁气缸打开 </value> </data>
<data name = "Y14" xml:space = "preserve">
<value> 批量门锁气缸关闭 </value> </data>
<data name = "Y15" xml:space = "preserve">
<value> 维护门警报关闭 </value> </data>
<data name = "Y16" xml:space = "preserve">
<value> 报警蜂鸣器 </value> </data>
<data name = "Y21" xml:space = "preserve">
<value> 分料机构气缸夹紧 </value> </data>
<data name = "Y22" xml:space = "preserve">
<value> 分料机构气缸放松 </value> </data>
<data name = "ZhLimit" xml:space = "preserve">
<value> 正限位 </value> </data>
<data name = "打开串口失败" xml:space = "preserve">
<value> 打开串口失败 </value> </data>
<data name = "打开日志" xml:space = "preserve">
<value> 打开日志 </value> </data>
<data name = "关闭日志" xml:space = "preserve">
<value> 关闭日志 </value> </data>
<data name = "检测信号" xml:space = "preserve">
<value> 检测信号 </value> </data>
<data name = "禁用调试" xml:space = "preserve">
<value> 禁用调试 </value> </data>
<data name = "启动失败:设备未初始化完成" xml:space = "preserve">
<value> 启动失败:设备正在初始化 </value> </data>
<data name = "启用调试" xml:space = "preserve">
<value> 启用调试 </value> </data>
<data name = "请输入正确的速度" xml:space = "preserve">
<value> 请输入正确的速度 </value> </data>
<data name = "确定将[{0}]保存为单盘入库默认库位?" xml:space = "preserve">
<value> 确定将[{0}]设为参考库位? </value> </data>
<data name = "确定开始{0}循环出库" xml:space = "preserve">
<value> 确定使用{0}开始循环出库? </value> </data>
<data name = "确定开始自动出入库?" xml:space = "preserve">
<value> 确定开始自动出入库? </value> </data>
<data name = "升降轴位置调试:" xml:space = "preserve">
<value> 轴2位置调试: </value> </data>
<data name = "伺服OFF" xml:space = "preserve">
<value> 伺服关闭 </value> </data>
<data name = "伺服ON" xml:space = "preserve">
<value> 伺服打开 </value> </data>
<data name = "温湿度报警" xml:space = "preserve">
<value> 温湿度报警 </value> </data>
<data name = "文件【{0}】已存在,是否确定覆盖?" xml:space = "preserve">
<value> 文件【{0}】已存在,是否覆盖? </value> </data>
<data name = "循环出库" xml:space = "preserve">
<value> 循环出库 </value> </data>
<data name = "右侧门未关" xml:space = "preserve">
<value> 维护门2未关 </value> </data>
<data name = "自动出库" xml:space = "preserve">
<value> 自动出库 </value> </data>
<data name = "自动出入库" xml:space = "preserve">
<value> 自动出入库 </value> </data>
<data name = "自动出入库操作" xml:space = "preserve">
<value> 自动出入库操作 </value> </data>
<data name = "自动入库" xml:space = "preserve">
<value> 自动入库 </value> </data>
<data name = "左侧门未关" xml:space = "preserve">
<value> 维护门1未关 </value> </data>
<data name = "FrmStoreBox_打开日志ToolStripMenuItem_Text" xml:space = "preserve">
<value> 打开日志 </value> </data>
<data name = "FrmStoreBox_chbDebug_Text" xml:space = "preserve">
<value> 调试状态 </value> </data>
<data name = "InstoreInfo" xml:space = "preserve">
<value> 批量出入库信息: 入库: </value> </data>
<data name="名称" xml:space="preserve">
<value> 中文 </value>
</data>
<data name="AbsMove" xml:space="preserve">
<value> 绝对运动 </value>
</data>
<data name="Alarm" xml:space="preserve">
<value> 报警 </value>
</data>
<data name="AutoEnd" xml:space="preserve">
<value> 自动出入库结束 </value>
</data>
<data name="AutoIn" xml:space="preserve">
<value> 自动入库: </value>
</data>
<data name="AutoOut" xml:space="preserve">
<value> 自动出库: </value>
</data>
<data name="AutoReset" xml:space="preserve">
<value> 收到复位信号,自动复位 </value>
</data>
<data name="AxisAlarm" xml:space="preserve">
<value> 运动轴{0}报警 </value>
</data>
<data name="AxisHomeMoveAlarm" xml:space="preserve">
<value> 运动{0}轴{1}收到原点完成信号,当前位置[{2}],误差过大! </value>
</data>
<data name="AxisMoveAlarm" xml:space="preserve">
<value> 运动{0}轴{1}目标位置[{2}]当前位置{3}误差过大! </value>
</data>
<data name="Batch_Axis" xml:space="preserve">
<value> 轴5 </value>
</data>
<data name="batchInError" xml:space="preserve">
<value> 批量入库失败:请确认批量门是否闭合! </value>
</data>
<data name="batchInError2" xml:space="preserve">
<value> 批量入库失败:请检查物料夹取机构是否有异物! </value>
</data>
<data name="BatchStop" xml:space="preserve">
<value> 轴5运动停止 </value>
</data>
<data name="Busy" xml:space="preserve">
<value> 设备运行中 </value>
</data>
<data name="CanotBack" xml:space="preserve">
<value> 当前设备状态无需回待机点,若您需要强制回待机点,请先按下急停,再回待机点! </value>
</data>
<data name="CanotReset" xml:space="preserve">
<value> 当前设备状态无需复位,若您需要强制复位,请先按下急停,再进行复位! </value>
</data>
<data name="CloseError" xml:space="preserve">
<value> 锁门失败:请确认批量门是否闭合! </value>
</data>
<data name="CnotOpen" xml:space="preserve">
<value> 设备运行中,禁止打开批量门! </value>
</data>
<data name="Comp_Axis" xml:space="preserve">
<value> 轴4 </value>
</data>
<data name="Debugging" xml:space="preserve">
<value> 设备处于调试模式中 </value>
</data>
<data name="doorClose" xml:space="preserve">
<value> 批量门已关闭 </value>
</data>
<data name="doorOpen" xml:space="preserve">
<value> 批量门已打开 </value>
</data>
<data name="Fail" xml:space="preserve">
<value> 操作失败 </value>
</data>
<data name="FrmAxisDebug_btnAutoMove_Text" xml:space="preserve">
<value> 轴5 向上 </value>
</data>
<data name="FrmAxisDebug_btnAutoMovej_Text" xml:space="preserve">
<value> 轴5 向下 </value>
</data>
<data name="FrmAxisDebug_btnComMove_Text" xml:space="preserve">
<value> 轴4 向下 </value>
</data>
<data name="FrmAxisDebug_btnComMovej_Text" xml:space="preserve">
<value> 轴4 向上 </value>
</data>
<data name="FrmAxisDebug_btnInOutMove_Text" xml:space="preserve">
<value> 轴3 前进 </value>
</data>
<data name="FrmAxisDebug_btnInOutMovej_Text" xml:space="preserve">
<value> 轴3 后退 </value>
</data>
<data name="FrmAxisDebug_btnMiddleMove_Text" xml:space="preserve">
<value> 轴1 顺时针 </value>
</data>
<data name="FrmAxisDebug_btnMiddleMovej_Text" xml:space="preserve">
<value> 轴1 逆时针 </value>
</data>
<data name="FrmAxisDebug_btnUpdate_Text" xml:space="preserve">
<value> 更新坐标 </value>
</data>
<data name="FrmAxisDebug_btnUpDownMove_Text" xml:space="preserve">
<value> 轴2 上升 </value>
</data>
<data name="FrmAxisDebug_btnUpDownMovej_Text" xml:space="preserve">
<value> 轴2 下降 </value>
</data>
<data name="FrmAxisDebug_button1_Text" xml:space="preserve">
<value> 关闭 </value>
</data>
<data name="FrmAxisDebug_label1_Text" xml:space="preserve">
<value> (轴1)旋转轴 </value>
</data>
<data name="FrmAxisDebug_label2_Text" xml:space="preserve">
<value> (轴2)升降轴 </value>
</data>
<data name="FrmAxisDebug_label3_Text" xml:space="preserve">
<value> (轴3)进出轴 </value>
</data>
<data name="FrmAxisDebug_label4_Text" xml:space="preserve">
<value> (轴4)压紧轴 </value>
</data>
<data name="FrmAxisDebug_label5_Text" xml:space="preserve">
<value> 转速(r/min) </value>
</data>
<data name="FrmAxisDebug_label6_Text" xml:space="preserve">
<value> 实时坐标 </value>
</data>
<data name="FrmAxisDebug_label7_Text" xml:space="preserve">
<value> (轴5)批量上下料轴 </value>
</data>
<data name="FrmAxisDebug_Text" xml:space="preserve">
<value> 运动轴调试 </value>
</data>
<data name="FrmIOStatus_btnCloseAxisBreak_Text" xml:space="preserve">
<value> 关闭轴2刹车 </value>
</data>
<data name="FrmIOStatus_btnCloseDeviceLed_Text" xml:space="preserve">
<value> 关闭设备照明 </value>
</data>
<data name="FrmIOStatus_btnCloseDoor_Text" xml:space="preserve">
<value> 关闭单料门 </value>
</data>
<data name="FrmIOStatus_btnCloseLed_Text" xml:space="preserve">
<value> 关闭相机辅助光源 </value>
</data>
<data name="FrmIOStatus_btnDClose_Text" xml:space="preserve">
<value> 批量门上锁 </value>
</data>
<data name="FrmIOStatus_btnDisDoorClose_Text" xml:space="preserve">
<value> 激活维护门警报 </value>
</data>
<data name="FrmIOStatus_btnDisDoorOpen_Text" xml:space="preserve">
<value> 关闭维护门警报 </value>
</data>
<data name="FrmIOStatus_btnDOpen_Text" xml:space="preserve">
<value> 批量门解锁 </value>
</data>
<data name="FrmIOStatus_btnOpenAxisBreak_Text" xml:space="preserve">
<value> 开启轴2刹车 </value>
</data>
<data name="FrmIOStatus_btnOpenDeviceLed_Text" xml:space="preserve">
<value> 打开设备照明 </value>
</data>
<data name="FrmIOStatus_btnOpenDoor_Text" xml:space="preserve">
<value> 打开单料门 </value>
</data>
<data name="FrmIOStatus_btnOpenLed_Text" xml:space="preserve">
<value> 打开相机辅助光源 </value>
</data>
<data name="FrmIOStatus_btnSuckingDiscDown_Text" xml:space="preserve">
<value> 分料机构下降 </value>
</data>
<data name="FrmIOStatus_btnSuckingDiscUp_Text" xml:space="preserve">
<value> 分料机构上升 </value>
</data>
<data name="FrmIOStatus_btnSXi_Text" xml:space="preserve">
<value> 抓取机构夹紧 </value>
</data>
<data name="FrmIOStatus_btnSXil_Text" xml:space="preserve">
<value> 抓取机构放松 </value>
</data>
<data name="FrmIOStatus_btnWriteSingleDO_Text" xml:space="preserve">
<value> 写入 </value>
</data>
<data name="FrmIOStatus_button1_Text" xml:space="preserve">
<value> 关闭 </value>
</data>
<data name="FrmIOStatus_button4_Text" xml:space="preserve">
<value> 关闭进气口 </value>
</data>
<data name="FrmIOStatus_button5_Text" xml:space="preserve">
<value> 开启进气口 </value>
</data>
<data name="FrmIOStatus_groupBox1_Text" xml:space="preserve">
<value> IO状态修改 </value>
</data>
<data name="FrmIOStatus_groupBox3_Text" xml:space="preserve">
<value> IO列表 </value>
</data>
<data name="FrmIOStatus_groupBox4_Text" xml:space="preserve">
<value> IO列表 </value>
</data>
<data name="FrmIOStatus_label14_Text" xml:space="preserve">
<value> 地址: </value>
</data>
<data name="FrmIOStatus_label17_Text" xml:space="preserve">
<value> 设备IP: </value>
</data>
<data name="FrmIOStatus_label3_Text" xml:space="preserve">
<value> 端口: </value>
</data>
<data name="FrmIOStatus_label5_Text" xml:space="preserve">
<value> 保持时间(ms): </value>
</data>
<data name="FrmIOStatus_radioButton1_Text" xml:space="preserve">
<value> 打开 </value>
</data>
<data name="FrmIOStatus_radioButton2_Text" xml:space="preserve">
<value> 关闭 </value>
</data>
<data name="FrmIOStatus_Text" xml:space="preserve">
<value> IO信息 </value>
</data>
<data name="FrmPositionTool_btnAbsMove_Text" xml:space="preserve">
<value> 开始运动 </value>
</data>
<data name="FrmPositionTool_btnClear_Text" xml:space="preserve">
<value> 清除日志 </value>
</data>
<data name="FrmPositionTool_btnExit_Text" xml:space="preserve">
<value> 退出 </value>
</data>
<data name="FrmPositionTool_btnGetActualPosition_Text" xml:space="preserve">
<value> 读取位置 </value>
</data>
<data name="FrmPositionTool_btnHomeMove_Text" xml:space="preserve">
<value> 返回原点 </value>
</data>
<data name="FrmPositionTool_btnOpenFolder_Text" xml:space="preserve">
<value> 打开文件夹 </value>
</data>
<data name="FrmPositionTool_btnSdStop_Text" xml:space="preserve">
<value> 停止 </value>
</data>
<data name="FrmPositionTool_btnServoOff_Text" xml:space="preserve">
<value> 关闭 </value>
</data>
<data name="FrmPositionTool_btnServoOn_Text" xml:space="preserve">
<value> 打开 </value>
</data>
<data name="FrmPositionTool_groupBox1_Text" xml:space="preserve">
<value> 设备信息 </value>
</data>
<data name="FrmPositionTool_groupBox2_Text" xml:space="preserve">
<value> 位置信息 </value>
</data>
<data name="FrmPositionTool_groupBox6_Text" xml:space="preserve">
<value> 伺服运动测试 </value>
</data>
<data name="FrmPositionTool_label1_Text" xml:space="preserve">
<value> IO模块IP: </value>
</data>
<data name="FrmPositionTool_label10_Text" xml:space="preserve">
<value> 入料P4偏移量: </value>
</data>
<data name="FrmPositionTool_label12_Text" xml:space="preserve">
<value> 端口号: </value>
</data>
<data name="FrmPositionTool_label13_Text" xml:space="preserve">
<value> 位置: </value>
</data>
<data name="FrmPositionTool_label18_Text" xml:space="preserve">
<value> 地址: </value>
</data>
<data name="FrmPositionTool_label2_Text" xml:space="preserve">
<value> 传感器地址: </value>
</data>
<data name="FrmPositionTool_label3_Text" xml:space="preserve">
<value> 位置文件名称: </value>
</data>
<data name="FrmPositionTool_label4_Text" xml:space="preserve">
<value> 出料前点P5偏移值: </value>
</data>
<data name="FrmPositionTool_label5_Text" xml:space="preserve">
<value> 出料缓冲点P6偏移量: </value>
</data>
<data name="FrmPositionTool_label6_Text" xml:space="preserve">
<value> 目标位置: </value>
</data>
<data name="FrmPositionTool_label7_Text" xml:space="preserve">
<value> 实际位置: </value>
</data>
<data name="FrmPositionTool_label8_Text" xml:space="preserve">
<value> 转速(r/min): </value>
</data>
<data name="FrmPositionTool_label9_Text" xml:space="preserve">
<value> 入料前点P3偏移量: </value>
</data>
<data name="FrmPositionTool_Text" xml:space="preserve">
<value> 轴2测试 </value>
</data>
<data name="FrmPwd_btnBack_Text" xml:space="preserve">
<value> 返回 </value>
</data>
<data name="FrmPwd_btnNext_Text" xml:space="preserve">
<value> 确定 </value>
</data>
<data name="FrmPwd_label1_Text" xml:space="preserve">
<value> 请输入密码: </value>
</data>
<data name="FrmPwd_Text" xml:space="preserve">
<value> 请输入密码 </value>
</data>
<data name="FrmStoreBox_btnAxisAMove_Text" xml:space="preserve">
<value> 绝对运动 </value>
</data>
<data name="FrmStoreBox_btnAxisReturnHome_Text" xml:space="preserve">
<value> 返回原点 </value>
</data>
<data name="FrmStoreBox_btnAxisRMove_Text" xml:space="preserve">
<value> 相对运动 </value>
</data>
<data name="FrmStoreBox_btnAxisStop_Text" xml:space="preserve">
<value> 停止运动 </value>
</data>
<data name="FrmStoreBox_btnAxisVMove_Text" xml:space="preserve">
<value> 匀速运动 </value>
</data>
<data name="FrmStoreBox_btnBatchInStore_Text" xml:space="preserve">
<value> 开始批量入库 </value>
</data>
<data name="FrmStoreBox_btnBatchOutTest_Text" xml:space="preserve">
<value> 批量出库测试 </value>
</data>
<data name="FrmStoreBox_btnBatchReset_Text" xml:space="preserve">
<value> 批量上下料模块复位 </value>
</data>
<data name="FrmStoreBox_btnClearBuzzer_Text" xml:space="preserve">
<value> 重置蜂鸣器 </value>
</data>
<data name="FrmStoreBox_btnClearLog_Text" xml:space="preserve">
<value> 清除日志 </value>
</data>
<data name="FrmStoreBox_btnCloseAxis_Text" xml:space="preserve">
<value> 关闭伺服 </value>
</data>
<data name="FrmStoreBox_btnCloseDoor_Text" xml:space="preserve">
<value> 批量门上锁 </value>
</data>
<data name="FrmStoreBox_btnComAlarmClear_Text" xml:space="preserve">
<value> 重置状态 </value>
</data>
<data name="FrmStoreBox_btnComP1_Text" xml:space="preserve">
<value> 压紧轴待机点P1: </value>
</data>
<data name="FrmStoreBox_btnComP2_Text" xml:space="preserve">
<value> 压紧轴压紧点P2: </value>
</data>
<data name="FrmStoreBox_btnComP3_Text" xml:space="preserve">
<value> 压紧轴压紧前点P3: </value>
</data>
<data name="FrmStoreBox_btnCycleOut_Text" xml:space="preserve">
<value> 启动演示模式 </value>
</data>
<data name="FrmStoreBox_btnGetAlarm_Text" xml:space="preserve">
<value> 读取伺服状态 </value>
</data>
<data name="FrmStoreBox_btnGetOutTray_Text" xml:space="preserve">
<value> 取出料盘 </value>
</data>
<data name="FrmStoreBox_btnHomeMove_Text" xml:space="preserve">
<value> 返回原点 </value>
</data>
<data name="FrmStoreBox_btnInOutP1_Text" xml:space="preserve">
<value> 进出轴待机点P1: </value>
</data>
<data name="FrmStoreBox_btnInOutP2_Text" xml:space="preserve">
<value> 进出轴吸盘取料点P2: </value>
</data>
<data name="FrmStoreBox_btnInOutP3_Text" xml:space="preserve">
<value> 进出轴库位取料点P3: </value>
</data>
<data name="FrmStoreBox_btnInOutP4_Text" xml:space="preserve">
<value> 进出轴仓门出料点P4: </value>
</data>
<data name="FrmStoreBox_btnLineAbsMove_Text" xml:space="preserve">
<value> 绝对运动 </value>
</data>
<data name="FrmStoreBox_btnMiddleP1_Text" xml:space="preserve">
<value> 旋转轴待机点P1: </value>
</data>
<data name="FrmStoreBox_btnMiddleP2_Text" xml:space="preserve">
<value> 旋转轴库位点P2: </value>
</data>
<data name="FrmStoreBox_btnOpenAxis_Text" xml:space="preserve">
<value> 打开伺服 </value>
</data>
<data name="FrmStoreBox_btnOpenDoor_Text" xml:space="preserve">
<value> 批量门解锁 </value>
</data>
<data name="FrmStoreBox_btnOutStore_Text" xml:space="preserve">
<value> 单盘出库测试 </value>
</data>
<data name="FrmStoreBox_btnRelMove_Text" xml:space="preserve">
<value> 相对运动 </value>
</data>
<data name="FrmStoreBox_btnSave_Text" xml:space="preserve">
<value> 设为起始库位 </value>
</data>
<data name="FrmStoreBox_btnSavePosition_Text" xml:space="preserve">
<value> 保存位置 </value>
</data>
<data name="FrmStoreBox_btnSaveSinglePosId_Text" xml:space="preserve">
<value> 设为参考库位 </value>
</data>
<data name="FrmStoreBox_btnSelTemp_Text" xml:space="preserve">
<value> 读取 </value>
</data>
<data name="FrmStoreBox_btnSingleTrayIn_Text" xml:space="preserve">
<value> 启动单盘入库 </value>
</data>
<data name="FrmStoreBox_btnStart_Text" xml:space="preserve">
<value> 开始自动出入库 </value>
</data>
<data name="FrmStoreBox_btnTempClose_Text" xml:space="preserve">
<value> 断开 </value>
</data>
<data name="FrmStoreBox_btnTempInit_Text" xml:space="preserve">
<value> 连接 </value>
</data>
<data name="FrmStoreBox_btnUpDownDoor_Text" xml:space="preserve">
<value> 升降轴仓门位置P7: </value>
</data>
<data name="FrmStoreBox_btnUpDownP1_Text" xml:space="preserve">
<value> 升降轴吸盘下方取料点P1: </value>
</data>
<data name="FrmStoreBox_btnUpdownP2_Text" xml:space="preserve">
<value> 升降轴出库高点P2: </value>
</data>
<data name="FrmStoreBox_btnUpDownP3_Text" xml:space="preserve">
<value> 升降轴入料前点P3: </value>
</data>
<data name="FrmStoreBox_btnUpDownP4_Text" xml:space="preserve">
<value> 升降轴入料缓冲点P4: </value>
</data>
<data name="FrmStoreBox_btnUpDownP5_Text" xml:space="preserve">
<value> 升降轴出料前点P5: </value>
</data>
<data name="FrmStoreBox_btnUpDownP6_Text" xml:space="preserve">
<value> 升降轴出料缓冲点P6: </value>
</data>
<data name="FrmStoreBox_btnUpDownP7_Text" xml:space="preserve">
<value> 升降轴取料缓冲点P7: </value>
</data>
<data name="FrmStoreBox_btnUpdownP8_Text" xml:space="preserve">
<value> 升降轴出库低点P8: </value>
</data>
<data name="FrmStoreBox_btnVolMove_Text" xml:space="preserve">
<value> 匀速运动 </value>
</data>
<data name="FrmStoreBox_btnWaitTrgGo_Text" xml:space="preserve">
<value> 关闭单料门 </value>
</data>
<data name="FrmStoreBox_chbAuto_Text" xml:space="preserve">
<value> 开机自动启动 </value>
</data>
<data name="FrmStoreBox_chbAutoRead_Text" xml:space="preserve">
<value> 位置自动更新 </value>
</data>
<data name="FrmStoreBox_checkBox1_Text" xml:space="preserve">
<value> 手动模式 </value>
</data>
<data name="FrmStoreBox_groupAuto_Text" xml:space="preserve">
<value> 出入库测试 </value>
</data>
<data name="FrmStoreBox_groupAxis_Text" xml:space="preserve">
<value> 伺服调试 </value>
</data>
<data name="FrmStoreBox_groupBox3_Text" xml:space="preserve">
<value> 设备状态 </value>
</data>
<data name="FrmStoreBox_groupBox6_Text" xml:space="preserve">
<value> 批量上下料操作 </value>
</data>
<data name="FrmStoreBox_groupBox7_Text" xml:space="preserve">
<value> 温湿度控制器调试 </value>
</data>
<data name="FrmStoreBox_groupInout_Text" xml:space="preserve">
<value> 位置操作 </value>
</data>
<data name="FrmStoreBox_iO状态查看ToolStripMenuItem_Text" xml:space="preserve">
<value> IO调试 </value>
</data>
<data name="FrmStoreBox_label10_Text" xml:space="preserve">
<value> BUSY状态: </value>
</data>
<data name="FrmStoreBox_label11_Text" xml:space="preserve">
<value> HOME-CMP状态: </value>
</data>
<data name="FrmStoreBox_label14_Text" xml:space="preserve">
<value> 1=报警,0=正常 </value>
</data>
<data name="FrmStoreBox_label15_Text" xml:space="preserve">
<value> 1=执行中,0=未执行 </value>
</data>
<data name="FrmStoreBox_label16_Text" xml:space="preserve">
<value> 1=完成,0=未完成 </value>
</data>
<data name="FrmStoreBox_label2_Text" xml:space="preserve">
<value> 报警状态: </value>
</data>
<data name="FrmStoreBox_label21_Text" xml:space="preserve">
<value> 选择仓位: </value>
</data>
<data name="FrmStoreBox_label22_Text" xml:space="preserve">
<value> 正极限信号: </value>
</data>
<data name="FrmStoreBox_label23_Text" xml:space="preserve">
<value> 1=ON,0=OFF </value>
</data>
<data name="FrmStoreBox_label24_Text" xml:space="preserve">
<value> 负极限信号: </value>
</data>
<data name="FrmStoreBox_label26_Text" xml:space="preserve">
<value> 1=ON,0=OFF </value>
</data>
<data name="FrmStoreBox_label27_Text" xml:space="preserve">
<value> 端口号: </value>
</data>
<data name="FrmStoreBox_label28_Text" xml:space="preserve">
<value> 温度: </value>
</data>
<data name="FrmStoreBox_label29_Text" xml:space="preserve">
<value> 湿度: </value>
</data>
<data name="FrmStoreBox_label30_Text" xml:space="preserve">
<value> 入库存料库位间隔: </value>
</data>
<data name="FrmStoreBox_label45_Text" xml:space="preserve">
<value> 端口号: </value>
</data>
<data name="FrmStoreBox_label46_Text" xml:space="preserve">
<value> 伺服地址: </value>
</data>
<data name="FrmStoreBox_label47_Text" xml:space="preserve">
<value> 转速(r/min): </value>
</data>
<data name="FrmStoreBox_label48_Text" xml:space="preserve">
<value> 位置: </value>
</data>
<data name="FrmStoreBox_label49_Text" xml:space="preserve">
<value> 选择伺服: </value>
</data>
<data name="FrmStoreBox_label5_Text" xml:space="preserve">
<value> 1=ON,0=OFF </value>
</data>
<data name="FrmStoreBox_label6_Text" xml:space="preserve">
<value> 原点信号: </value>
</data>
<data name="FrmStoreBox_label7_Text" xml:space="preserve">
<value> 输出脉冲值: </value>
</data>
<data name="FrmStoreBox_label8_Text" xml:space="preserve">
<value> 编码器计数: </value>
</data>
<data name="FrmStoreBox_lblBatchStatus_Text" xml:space="preserve">
<value> 等待启动 </value>
</data>
<data name="FrmStoreBox_lblDoorStatus_Text" xml:space="preserve">
<value> 批量门状态:关闭中 </value>
</data>
<data name="FrmStoreBox_lblMsg_Text" xml:space="preserve">
<value> 未启动自动出入库 </value>
</data>
<data name="FrmStoreBox_lblOutInfo_Text" xml:space="preserve">
<value> 出库计数 </value>
</data>
<data name="FrmStoreBox_lblTemp_Text" xml:space="preserve">
<value> 当前温度--,当前湿度-- </value>
</data>
<data name="FrmStoreBox_lblThisSta_Text" xml:space="preserve">
<value> 设备未启动 </value>
</data>
<data name="FrmStoreBox_lblWaitTragGo_Text" xml:space="preserve">
<value> 请处理料盘,并点击关闭单料门按钮。 </value>
</data>
<data name="FrmStoreBox_tabPage1_Text" xml:space="preserve">
<value> 温湿度调试 </value>
</data>
<data name="FrmStoreBox_tabPage2_Text" xml:space="preserve">
<value> 设备调试 </value>
</data>
<data name="FrmStoreBox_tabPage5_Text" xml:space="preserve">
<value> 设备信息 </value>
</data>
<data name="FrmStoreBox_tabPage4_Text" xml:space="preserve">
<value> 日志 </value>
</data>
<data name="FrmStoreBox_Text" xml:space="preserve">
<value> 云料仓 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem1_Text" xml:space="preserve">
<value> 退出 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem2_Text" xml:space="preserve">
<value> 打开相机辅助光源 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem3_Text" xml:space="preserve">
<value> 关闭相机辅助光源 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem4_Text" xml:space="preserve">
<value> 维护门警报屏蔽 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem5_Text" xml:space="preserve">
<value> 维护门警报打开 </value>
</data>
<data name="FrmStoreBox_toolStripMenuItem6_Text" xml:space="preserve">
<value> 日语 </value>
</data>
<data name="FrmStoreBox_查看IOToolStripMenuItem_Text" xml:space="preserve">
<value> 查看IO </value>
</data>
<data name="FrmStoreBox_出入库调试ToolStripMenuItem_Text" xml:space="preserve">
<value> 启用调试模式 </value>
</data>
<data name="FrmStoreBox_打开舱门ToolStripMenuItem_Text" xml:space="preserve">
<value> 打开单料门 </value>
</data>
<data name="FrmStoreBox_复位ToolStripMenuItem_Text" xml:space="preserve">
<value> 复位 </value>
</data>
<data name="FrmStoreBox_关闭仓门ToolStripMenuItem_Text" xml:space="preserve">
<value> 关闭单料门 </value>
</data>
<data name="FrmStoreBox_回待机点ToolStripMenuItem_Text" xml:space="preserve">
<value> 回待机点 </value>
</data>
<data name="FrmStoreBox_料仓操作ToolStripMenuItem_Text" xml:space="preserve">
<value> 设备 </value>
</data>
<data name="FrmStoreBox_料仓运转OFFToolStripMenuItem_Text" xml:space="preserve">
<value> 打开伺服 </value>
</data>
<data name="FrmStoreBox_料仓运转ONToolStripMenuItem_Text" xml:space="preserve">
<value> 关闭伺服 </value>
</data>
<data name="FrmStoreBox_批量上下轴OFFToolStripMenuItem_Text" xml:space="preserve">
<value> 打开轴5 </value>
</data>
<data name="FrmStoreBox_批量上下轴ONToolStripMenuItem_Text" xml:space="preserve">
<value> 关闭轴5 </value>
</data>
<data name="FrmStoreBox_启动ToolStripMenuItem_Text" xml:space="preserve">
<value> 启动 </value>
</data>
<data name="FrmStoreBox_清理日志ToolStripMenuItem_Text" xml:space="preserve">
<value> 中文 </value>
</data>
<data name="FrmStoreBox_扫码测试ToolStripMenuItem_Text" xml:space="preserve">
<value> 扫码测试 </value>
</data>
<data name="FrmStoreBox_上料模块复位ToolStripMenuItem_Text" xml:space="preserve">
<value> 轴5复位 </value>
</data>
<data name="FrmStoreBox_设备调试ToolStripMenuItem_Text" xml:space="preserve">
<value> 功能调试 </value>
</data>
<data name="FrmStoreBox_摄像机调试ToolStripMenuItem_Text" xml:space="preserve">
<value> 条码学习 </value>
</data>
<data name="FrmStoreBox_升降轴位置调试ToolStripMenuItem_Text" xml:space="preserve">
<value> 轴2位置调试 </value>
</data>
<data name="FrmStoreBox_停止ToolStripMenuItem_Text" xml:space="preserve">
<value> 停止 </value>
</data>
<data name="FrmStoreBox_退出ToolStripMenuItem_Text" xml:space="preserve">
<value> 退出系统 </value>
</data>
<data name="FrmStoreBox_显示ToolStripMenuItem_Text" xml:space="preserve">
<value> 显示界面 </value>
</data>
<data name="FrmStoreBox_英文ToolStripMenuItem_Text" xml:space="preserve">
<value> 英文 </value>
</data>
<data name="FrmStoreBox_语言_Text" xml:space="preserve">
<value> 语言 </value>
</data>
<data name="FrmStoreBox_轴卡点动ToolStripMenuItem_Text" xml:space="preserve">
<value> 运动轴调试 </value>
</data>
<data name="FuLimit" xml:space="preserve">
<value> 负限位 </value>
</data>
<data name="GetError" xml:space="preserve">
<value> 取出料盘操作失败:无料盘 </value>
</data>
<data name="GetError2" xml:space="preserve">
<value> 取出料盘操作失败:设备工作中,批量门无法解锁 </value>
</data>
<data name="HasWare" xml:space="preserve">
<value> 夹取机构检测有料,请检查! </value>
</data>
<data name="HomeMove" xml:space="preserve">
<value> 返回原点 </value>
</data>
<data name="InOut_Axis" xml:space="preserve">
<value> (轴3)进出轴 </value>
</data>
<data name="InoutAlarm" xml:space="preserve">
<value> 轴3报警!复位失败,请检查! </value>
</data>
<data name="InoutNotOk" xml:space="preserve">
<value> 请先将轴3退回待机位! </value>
</data>
<data name="InoutWarn" xml:space="preserve">
<value> 警告(轴3在待机位时,才能移动轴2和轴1) </value>
</data>
<data name="InStoreEnd" xml:space="preserve">
<value> 料盘到达库位 </value>
</data>
<data name="InStoreError" xml:space="preserve">
<value> 入库库位格式错误:条码[{0}],库位号[{1}] </value>
</data>
<data name="InStoreExecute" xml:space="preserve">
<value> 入库执行中 </value>
</data>
<data name="InStoreFailed" xml:space="preserve">
<value> 入库失败 </value>
</data>
<data name="InStoreNoCode" xml:space="preserve">
<value> 未扫到条码,料盘将到达单料门 </value>
</data>
<data name="InStoreNoPosition" xml:space="preserve">
<value> 入库未找到库位:条码[{0}],库位号[{1}] </value>
</data>
<data name="inSuddenStop" xml:space="preserve">
<value> 设备急停 </value>
</data>
<data name="Middle_Axis" xml:space="preserve">
<value> (轴1)旋转轴 </value>
</data>
<data name="MoveTimeOut" xml:space="preserve">
<value> [{0}]超时{1}[{2}] </value>
</data>
<data name="MsgTitle" xml:space="preserve">
<value> 提示 </value>
</data>
<data name="NO_Clamping_Check" xml:space="preserve">
<value> 分料机构气缸料盘检测无信号 </value>
</data>
<data name="NoAIr" xml:space="preserve">
<value> 未检测到气压信号 </value>
</data>
<data name="NoCodeMsg" xml:space="preserve">
<value> 未扫到条码,请重新放入料盘! </value>
</data>
<data name="OpenAxisFail" xml:space="preserve">
<value> 打开轴{0}失败 </value>
</data>
<data name="oustore" xml:space="preserve">
<value> 出库: </value>
</data>
<data name="OutFull" xml:space="preserve">
<value> 料盘已放满,请取出! </value>
</data>
<data name="OutMoveExecute" xml:space="preserve">
<value> 出库完成 </value>
</data>
<data name="OutStoreBoxEnd" xml:space="preserve">
<value> 料盘已离开库位 </value>
</data>
<data name="OutStoreError" xml:space="preserve">
<value> 出库失败:库位号{0}格式错误 </value>
</data>
<data name="OutStoreExecute" xml:space="preserve">
<value> 出库执行中 </value>
</data>
<data name="OutStoreFailed" xml:space="preserve">
<value> 出库失败 </value>
</data>
<data name="OutStoreNoPosition" xml:space="preserve">
<value> 出库失败:未找到库位{0} </value>
</data>
<data name="PCloseDoor" xml:space="preserve">
<value> 请先关闭批量门! </value>
</data>
<data name="PleaseStartStore" xml:space="preserve">
<value> 请先启动料仓! </value>
</data>
<data name="PWPwd" xml:space="preserve">
<value> 密码错误,请输入正确的密码 </value>
</data>
<data name="PWSpeed" xml:space="preserve">
<value> 请输入正确的速度! </value>
</data>
<data name="Reset" xml:space="preserve">
<value> 复位中 </value>
</data>
<data name="Run" xml:space="preserve">
<value> 待机中 </value>
</data>
<data name="Runing" xml:space="preserve">
<value> 待机中 </value>
</data>
<data name="SaveError" xml:space="preserve">
<value> 保存失败 </value>
</data>
<data name="SaveOk" xml:space="preserve">
<value> 保存成功 </value>
</data>
<data name="ScanOk" xml:space="preserve">
<value> 扫码结束 </value>
</data>
<data name="ServoOff" xml:space="preserve">
<value> 关闭伺服 </value>
</data>
<data name="servoON" xml:space="preserve">
<value> 打开伺服 </value>
</data>
<data name="StartAuto" xml:space="preserve">
<value> 开始自动出入库 </value>
</data>
<data name="StartCycle" xml:space="preserve">
<value> 开始循环出库 </value>
</data>
<data name="startFail" xml:space="preserve">
<value> 启动失败:急停按钮未打开 </value>
</data>
<data name="startFailAir" xml:space="preserve">
<value> 启动失败:未检测到气压信号 </value>
</data>
<data name="StopAuto" xml:space="preserve">
<value> 停止自动出入库 </value>
</data>
<data name="StopCycle" xml:space="preserve">
<value> 停止循环出库 </value>
</data>
<data name="StoreOnline" xml:space="preserve">
<value> 设备联机中 </value>
</data>
<data name="SuddenStop" xml:space="preserve">
<value> 设备急停中 </value>
</data>
<data name="SureExit" xml:space="preserve">
<value> 是否确定退出? </value>
</data>
<data name="TakeTrayGo" xml:space="preserve">
<value> 操作人员拿走料盘 </value>
</data>
<data name="TakeTrayOut" xml:space="preserve">
<value> 关闭单料门 </value>
</data>
<data name="TheDoorOpen" xml:space="preserve">
<value> 批量门未关闭,无法出库! </value>
</data>
<data name="TimeOut" xml:space="preserve">
<value> 超时 </value>
</data>
<data name="UpDown_Axis" xml:space="preserve">
<value> (轴2)升降轴 </value>
</data>
<data name="Wait" xml:space="preserve">
<value> 设备未启动 </value>
</data>
<data name="WaitEnd" xml:space="preserve">
<value> 等待NG料送到单料门完成 </value>
</data>
<data name="WaitInstoreTimeOut" xml:space="preserve">
<value> [{0}]超时:[等待可以入库][{1}秒] </value>
</data>
<data name="WaitIo" xml:space="preserve">
<value> IO信号等待 </value>
</data>
<data name="WaitSingleTimeOut" xml:space="preserve">
<value> 等待信号{0}={1}超时 </value>
</data>
<data name="WaitStart" xml:space="preserve">
<value> 设备未启动 </value>
</data>
<data name="WaitTime" xml:space="preserve">
<value> 等待时间: </value>
</data>
<data name="WarnMsg" xml:space="preserve">
<value> 警告 </value>
</data>
<data name="X01" xml:space="preserve">
<value> 急停 </value>
</data>
<data name="X02" xml:space="preserve">
<value> 复位 </value>
</data>
<data name="X03" xml:space="preserve">
<value> 自动启动 </value>
</data>
<data name="X04" xml:space="preserve">
<value> 安全光栅 </value>
</data>
<data name="X05" xml:space="preserve">
<value> 单料门气缸上升到位信号 </value>
</data>
<data name="X06" xml:space="preserve">
<value> 单料门气缸下降到位信号 </value>
</data>
<data name="X07" xml:space="preserve">
<value> 分料机构气缸上升到位信号 </value>
</data>
<data name="X08" xml:space="preserve">
<value> 分料机构气缸下降到位信号 </value>
</data>
<data name="X09" xml:space="preserve">
<value> 料盘宽度检测1 </value>
</data>
<data name="X10" xml:space="preserve">
<value> 料盘宽度检测2 </value>
</data>
<data name="X11" xml:space="preserve">
<value> 料盘检测1(上料机构) </value>
</data>
<data name="X12" xml:space="preserve">
<value> 上料机构出料检测 </value>
</data>
<data name="X13" xml:space="preserve">
<value> 批量门锁气缸打开端 </value>
</data>
<data name="X14" xml:space="preserve">
<value> 批量门锁气缸关闭端 </value>
</data>
<data name="X15" xml:space="preserve">
<value> 料盘检测2(夹取机构) </value>
</data>
<data name="X21" xml:space="preserve">
<value> 批量门关闭 </value>
</data>
<data name="X22" xml:space="preserve">
<value> 气压检测 </value>
</data>
<data name="X23" xml:space="preserve">
<value> 维护门1关闭 </value>
</data>
<data name="X24" xml:space="preserve">
<value> 维护门2关闭 </value>
</data>
<data name="X25" xml:space="preserve">
<value> 批量门锁气缸打开端2 </value>
</data>
<data name="X26" xml:space="preserve">
<value> 批量门锁气缸关闭端2 </value>
</data>
<data name="X27" xml:space="preserve">
<value> 轴5上极限 </value>
</data>
<data name="X28" xml:space="preserve">
<value> 单料门料盘检测 </value>
</data>
<data name="X29" xml:space="preserve">
<value> 抓取机构气缸夹紧端 </value>
</data>
<data name="X30" xml:space="preserve">
<value> 抓取机构气缸放松端 </value>
</data>
<data name="X31" xml:space="preserve">
<value> 分料机构气缸料盘检测 </value>
</data>
<data name="Y01" xml:space="preserve">
<value> 自动指示灯 </value>
</data>
<data name="Y02" xml:space="preserve">
<value> 故障指示灯 </value>
</data>
<data name="Y03" xml:space="preserve">
<value> 待机指示灯 </value>
</data>
<data name="Y04" xml:space="preserve">
<value> 进气口打开 </value>
</data>
<data name="Y05" xml:space="preserve">
<value> 料仓伺服电源打开 </value>
</data>
<data name="Y06" xml:space="preserve">
<value> 轴2刹车电源打开 </value>
</data>
<data name="Y07" xml:space="preserve">
<value> 相机辅助光源打开 </value>
</data>
<data name="Y08" xml:space="preserve">
<value> 设备照明打开 </value>
</data>
<data name="Y09" xml:space="preserve">
<value> 单料门上升 </value>
</data>
<data name="Y10" xml:space="preserve">
<value> 单料门下降 </value>
</data>
<data name="Y11" xml:space="preserve">
<value> 分料机构气缸上升 </value>
</data>
<data name="Y12" xml:space="preserve">
<value> 分料机构气缸下降 </value>
</data>
<data name="Y13" xml:space="preserve">
<value> 批量门锁气缸打开 </value>
</data>
<data name="Y14" xml:space="preserve">
<value> 批量门锁气缸关闭 </value>
</data>
<data name="Y15" xml:space="preserve">
<value> 维护门警报关闭 </value>
</data>
<data name="Y16" xml:space="preserve">
<value> 报警蜂鸣器 </value>
</data>
<data name="Y21" xml:space="preserve">
<value> 分料机构气缸夹紧 </value>
</data>
<data name="Y22" xml:space="preserve">
<value> 分料机构气缸放松 </value>
</data>
<data name="ZhLimit" xml:space="preserve">
<value> 正限位 </value>
</data>
<data name="打开串口失败" xml:space="preserve">
<value> 打开串口失败 </value>
</data>
<data name="打开日志" xml:space="preserve">
<value> 打开日志 </value>
</data>
<data name="关闭日志" xml:space="preserve">
<value> 关闭日志 </value>
</data>
<data name="检测信号" xml:space="preserve">
<value> 检测信号 </value>
</data>
<data name="禁用调试" xml:space="preserve">
<value> 禁用调试 </value>
</data>
<data name="启动失败:设备未初始化完成" xml:space="preserve">
<value> 启动失败:设备正在初始化 </value>
</data>
<data name="启用调试" xml:space="preserve">
<value> 启用调试 </value>
</data>
<data name="请输入正确的速度" xml:space="preserve">
<value> 请输入正确的速度 </value>
</data>
<data name="确定将[{0}]保存为单盘入库默认库位?" xml:space="preserve">
<value> 确定将[{0}]设为参考库位? </value>
</data>
<data name="确定开始{0}循环出库" xml:space="preserve">
<value> 确定使用{0}开始循环出库? </value>
</data>
<data name="确定开始自动出入库?" xml:space="preserve">
<value> 确定开始自动出入库? </value>
</data>
<data name="升降轴位置调试:" xml:space="preserve">
<value> 轴2位置调试: </value>
</data>
<data name="伺服OFF" xml:space="preserve">
<value> 伺服关闭 </value>
</data>
<data name="伺服ON" xml:space="preserve">
<value> 伺服打开 </value>
</data>
<data name="温湿度报警" xml:space="preserve">
<value> 温湿度报警 </value>
</data>
<data name="文件【{0}】已存在,是否确定覆盖?" xml:space="preserve">
<value> 文件【{0}】已存在,是否覆盖? </value>
</data>
<data name="循环出库" xml:space="preserve">
<value> 循环出库 </value>
</data>
<data name="右侧门未关" xml:space="preserve">
<value> 维护门2未关 </value>
</data>
<data name="自动出库" xml:space="preserve">
<value> 自动出库 </value>
</data>
<data name="自动出入库" xml:space="preserve">
<value> 自动出入库 </value>
</data>
<data name="自动出入库操作" xml:space="preserve">
<value> 自动出入库操作 </value>
</data>
<data name="自动入库" xml:space="preserve">
<value> 自动入库 </value>
</data>
<data name="左侧门未关" xml:space="preserve">
<value> 维护门1未关 </value>
</data>
<data name="FrmStoreBox_打开日志ToolStripMenuItem_Text" xml:space="preserve">
<value> 打开日志 </value>
</data>
<data name="FrmStoreBox_chbDebug_Text" xml:space="preserve">
<value> 调试状态 </value>
</data>
<data name="InstoreInfo" xml:space="preserve">
<value> 批量出入库信息: 入库: </value>
</data>
<data name="FrmStoreBox_tabPage6_Text" xml:space="preserve">
<value>库位调试</value>
</data>
</root>
\ No newline at end of file
......@@ -19,7 +19,7 @@ namespace OnlineStore.AutoInOutStore
{
public class ResourceCulture
{
public static bool ShowLog = false ;
public static bool ShowLog = true ;
public static string China = "zh-CN";
public static string English = "en-US";
public static string German = "ge-DE";
......
using log4net;
using OnlineStore.AutoInOutStore;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OnlineStore.ACSingleStore.useControl
{
public partial class uc_boxdebug : UserControl
{
private AC_SA_BoxBean store;
private string StartAuto = ResourceCulture.GetString(ResourceCulture.StartAuto, "开始自动出入库");
private string StopAuto = ResourceCulture.GetString(ResourceCulture.StopAuto, "停止自动出入库");
private string AutoOut = ResourceCulture.GetString(ResourceCulture.AutoOut, "自动出库:");
private string AutoIn = ResourceCulture.GetString(ResourceCulture.AutoIn, "自动入库:");
private string StartCycle = ResourceCulture.GetString(ResourceCulture.StartCycle, "开始循环出库");
private string StopCycle = ResourceCulture.GetString(ResourceCulture.StopCycle, "停止循环出库");
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Dictionary<string,PosState> posState = new Dictionary<string, PosState>();
//如果总配置文件存在,保存到总的配置文件
static string appPath = Application.StartupPath;
static string positionConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config);
class PosState {
public int InStoreCheck = 0;
public int OutStoreCheck = 0;
}
public uc_boxdebug()
{
InitializeComponent();
}
public void Init(AC_SA_BoxBean store)
{
this.store = this.store = store;
if (store == null)
{
LogUtil.error(LOGGER, "找不到对应的料仓");
return;
}
StartAuto = ResourceCulture.GetString("开始自动出入库");
StopAuto = ResourceCulture.GetString("停止自动出入库");
AutoOut = ResourceCulture.GetString("自动出库:");
AutoIn = ResourceCulture.GetString("自动入库:");
FillBoxPos();
cmbJianGe.Items.Clear();
for (int i = 0; i <= 20; i++)
{
cmbJianGe.Items.Add(i.ToString());
}
cmbJianGe.SelectedIndex = 1;
store.InOutEndProcessEvent += Store_InOutEndProcessEvent;
timer1.Enabled = true;
return;
}
private void Store_InOutEndProcessEvent(string arg1, StoreMoveType arg2, bool arg3)
{
//LogUtil.info($"出入库完成状态:{arg2},库位:{arg1}");
int InStoreCheck = 0;
int OutStoreCheck = 0;
if (arg2 == StoreMoveType.InStore)
InStoreCheck = 1;
else if (arg2 == StoreMoveType.OutStore)
OutStoreCheck = 1;
var pps = SavePosCheck(arg1, InStoreCheck, OutStoreCheck);
if (htpp.ContainsKey(arg1))
{
var pp = (PosPos)htpp[arg1];
var cells = dataGridView1.Rows[pp.row].Cells[pp.col];
cells.Style = GetStyle(arg1);
}
}
DataGridViewCellStyle GetStyle(string posid) {
if (htpp.ContainsKey(posid) && posState.ContainsKey(posid))
{
var pp = (PosPos)htpp[posid];
var pps = (PosState)posState[posid];
var cells = dataGridView1.Rows[pp.row].Cells[pp.col];
cells.Selected = true;
if (pps.InStoreCheck == 1 && pps.OutStoreCheck == 1)
return dgv_ok;
else if (pps.InStoreCheck == 1)
return dgv_oin;
else if (pps.OutStoreCheck == 1)
return dgv_oout;
}
return dgv_none;
}
Hashtable htpp = new Hashtable();
class PosPos {
public string Posid;
public int index;
public int row;
public int col;
}
int PosCompare(string a, string b) {
string[] pa = a.Split('_');
string[] pb = b.Split('_');
if (int.TryParse(pa[1],out _))
pa[1] += "A";
if (int.TryParse(pb[1], out _))
pb[1] += "A";
var isa = Regex.Replace(pa[1], @"[^\d]*", "")+(pa[1][1].Equals('A') ? "1" : "2") + pa[2][0] + pa[3].PadLeft(2, '0');
var isb = Regex.Replace(pb[1], @"[^\d]*", "") + (pb[1][1].Equals('A') ? "1" : "2") + pb[2][0] + pb[3].PadLeft(2, '0');
if (int.Parse(isa) == int.Parse(isb))
return 0;
else if (int.Parse(isa) > int.Parse(isb))
return 1;
else
return -1;
}
void LoadPosCheck() {
var poscheckfile = positionConfigFile + ".check";
if (File.Exists(poscheckfile))
{
try
{
posState = JsonHelper.DeserializeJsonToObject<Dictionary<string, PosState>>(File.ReadAllText(poscheckfile));
File.Copy(poscheckfile, poscheckfile + ".backup", true);
}
catch {
if (File.Exists(poscheckfile + ".backup"))
{
File.Copy(poscheckfile + ".backup", poscheckfile, true);
File.Delete(poscheckfile + ".backup");
LoadPosCheck();
}
}
}
else
{
File.WriteAllText(poscheckfile, JsonHelper.SerializeObject(posState));
}
}
PosState SavePosCheck(string posid,int inStoreCheck,int outStoreCheck) {
if (!posState.ContainsKey(posid))
posState.Add(posid, new PosState());
if (inStoreCheck>0)
posState[posid].InStoreCheck = inStoreCheck;
if (outStoreCheck > 0)
posState[posid].OutStoreCheck = outStoreCheck;
var poscheckfile = positionConfigFile + ".check";
File.WriteAllText(poscheckfile, JsonHelper.SerializeObject(posState));
return posState[posid];
}
static Font font = new Font("宋体",10);
DataGridViewCellStyle dgv_ok = new DataGridViewCellStyle() { BackColor = Color.LightGreen, Font = font };
DataGridViewCellStyle dgv_oin = new DataGridViewCellStyle() { BackColor = Color.LightGray, Font = font };
DataGridViewCellStyle dgv_oout = new DataGridViewCellStyle() { BackColor = Color.LightSeaGreen, Font = font };
DataGridViewCellStyle dgv_none = new DataGridViewCellStyle() { BackColor = Color.White,Font= font };
void FillBoxPos() {
LoadPosCheck();
Comparison<string> comparison = new Comparison<string>(PosCompare);
store.PositionNumList.Sort(comparison);
//store.PositionNumList.Reverse();
string[] posstr = store.PositionNumList[store.PositionNumList.Count-1].Split('_');
int colcount = int.Parse(Regex.Replace(posstr[1], @"[^\d]*", ""))+1;
for (int i = 0; i < colcount; i++)
{
dataGridView1.Columns.Add("Col" + i + "_A", "Col" + i + "_A");
dataGridView1.Columns.Add("Col" + i + "_B", "Col" + i + "_B");
}
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].Width = 64;
dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
if (i % 2 != 0)
dataGridView1.Columns[i].Width = 0;
}
dataGridView1.Rows.Add();
int currentRowIndex = 0;
int lastcol = -1;
string lastAB = "";
for (int i = 0; i < store.PositionNumList.Count; i++)
{
int ci = store.PositionNumList.Count-1 - i;
string posname = store.PositionNumList[ci];
string[] _posstr = posname.Split('_');
int col = int.Parse(Regex.Replace(_posstr[1], @"[^\d]*", ""));
string ab = "A";
if (_posstr[1].Length>1)
ab = _posstr[1][1].ToString();
if (col != lastcol || lastAB!= ab)
currentRowIndex = 0;
lastcol = col;
lastAB = ab;
if (currentRowIndex >= dataGridView1.Rows.Count-1)
{
int x = dataGridView1.Rows.Add();
}
var currentRow = dataGridView1.Rows[currentRowIndex];
int currentColIndex = col * 2;
if (ab.ToLower() == "b")
currentColIndex++;
currentRow.Cells[currentColIndex].Value = $"{_posstr[1]}_{_posstr[2]}_{_posstr[3]}";
currentRow.Cells[currentColIndex].Tag = posname;
htpp.Add(posname, new PosPos() { Posid = posname, index = i, row = currentRowIndex, col = currentColIndex });
currentRow.Cells[currentColIndex].Style = GetStyle(posname);
currentRowIndex++;
}
dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 1);
setData(store.PositionNumList.Last());
}
void setData(string posid) {
AutoStorePosition ktkPosition = CSVPositionReader<AutoStorePosition>.GetPositon(posid);
cmbPosition.Text = posid;
label_size.Text = $"[{ktkPosition.BagWidth}x{ktkPosition.BagHeight}]";
if (ktkPosition != null)
{
txtMiddleP2.Text = ktkPosition.MiddleAxis_Position_P2.ToString();
txtUpDownP3.Text = ktkPosition.UpDownAxis_IHPosition_P3.ToString();
txtUpDownP4.Text = ktkPosition.UpDownAxis_ILPosition_P4.ToString();
txtUpDownP5.Text = ktkPosition.UpDownAxis_OHPosition_P5.ToString();
txtUpDownP6.Text = ktkPosition.UpDownAxis_OLPosition_P6.ToString();
txtComP2.Text = ktkPosition.CompressAxis_Position_P2.ToString();
txtComP3.Text = ktkPosition.CompressAxis_CPosition_P3.ToString();
txtInOutP3.Text = ktkPosition.InOutAxis_Position_P3.ToString();
txtInOutP2.Text = ktkPosition.InOutAxis_Batch_P2.ToString();
txtInoutP4.Text = ktkPosition.InOutAxis_DoorOutPosition_P4.ToString();
txtUpDownP1.Text = store.Config.GetUpDownP1(ktkPosition.BagHeight).ToString();
//txtUpDownP2.Text = ktkPosition.UpDownAxis_DoorIPosition_P2.ToString();
//txtUpDownP7.Text = ktkPosition.UpDownAxis_DoorOBPosition_P7.ToString();
//txtUpDownP8.Text = ktkPosition.UpDownAxis_DoorIBPosition_P8.ToString();
//txtInOutP2.Text = ktkPosition.InOutAxis_DoorPosition_P2.ToString();
//txtUpDownP1.Text = ktkPosition.UpDownAxis_DoorOPosition_P1.ToString();
if (ktkPosition.SupportBatch.Equals(1))
{
btnBatchOutTest.Enabled = true;
}
else
{
btnBatchOutTest.Enabled = false;
}
}
}
private void btnStart_Click(object sender, EventArgs e)
{
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
if (store.autoNext)
{
store.autoNext = false;
btnStart.Text = StartAuto;
}
else
{
DialogResult res = MessageBox.Show(ResourceCulture.GetString("确定开始自动出入库?", "确定开始自动出入库?"), ResourceCulture.GetString(ResourceCulture.MsgTitle, "提示"), MessageBoxButtons.YesNo);
if (res.Equals(DialogResult.Yes))
{
int jiange = cmbJianGe.SelectedIndex;
store.autoJiange = jiange;
if (cmbPosition.Text !="")
{
int currIndex = store.PositionNumList.IndexOf(cmbPosition.Text);
store.autoPositionIndex = currIndex;
store.AutoStartIndex = currIndex;
string poText = cmbPosition.Text;
ConfigAppSettings.SaveValue(Setting_Init.DebugPosId, poText);
store.autoMsg = ResourceCulture.GetString("自动出入库", "自动出入库") + ":" + poText;
store.autoNext = true;
LogUtil.info(LOGGER, store.StoreName + "开启自动出入库模式,开始位置【" + poText + "】(索引=" + currIndex + "),间隔=" + jiange + "");
btnStart.Text = StopAuto;
//DebugStatus(false);
string msg = AutomaticBaiting.doStartBatchIn();
LogUtil.info("自动出入库: 开始自动入库:库位号【" + poText + "】,开始入库,结果:" + msg);
}
}
}
}
else
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
private void AxisABSMove(ConfigMoveAxis moveAxis, int targetPosition, int targetSpeed)
{
moveAxis.TargetPosition = targetPosition;
ACServerManager.AbsMove(moveAxis.DeviceName, moveAxis.GetAxisValue(), targetPosition, targetSpeed);
}
private void btnOutStore_Click(object sender, EventArgs e)
{
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
string selectPositionNum = cmbPosition.Text;
LineMoveP ktk = LoadPostion();
store.StartOutStoreMove(new InOutStoreParam("", selectPositionNum, ktk), false);
}
else
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
/// <summary>
/// 判断进出轴是否在P1点
/// </summary>
private bool InOutIsIsP1()
{
int InOutDefaultPosition = ConfigAppSettings.GetIntValue(Setting_Init.InOutDefaultPosition);
//if (InOutDefaultPosition > 3000 || InOutDefaultPosition.Equals(0))
//{
// InOutDefaultPosition = 3000;
//}
int currValue = ACServerManager.GetActualtPosition(store.Config.InOut_Axis.DeviceName, store.Config.InOut_Axis.GetAxisValue());
if (currValue <= InOutDefaultPosition)
{
return true;
}
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.InoutNotOk, "叉子不在待机位,请先将叉子退回待机位") + "(" + InOutDefaultPosition + ")!",
ResourceCulture.GetString(ResourceCulture.InoutWarn, "警告(叉子在待机位时,才能移动升降轴和旋转轴)"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (!Visible)
return;
StartAuto = ResourceCulture.GetString(ResourceCulture.StartAuto, "开始自动出入库");
StopAuto = ResourceCulture.GetString(ResourceCulture.StopAuto, "停止自动出入库");
AutoOut = ResourceCulture.GetString(ResourceCulture.AutoOut, "自动出库:");
AutoIn = ResourceCulture.GetString(ResourceCulture.AutoIn, "自动入库:");
StartCycle = ResourceCulture.GetString(ResourceCulture.StartCycle, "开始循环出库");
StopCycle = ResourceCulture.GetString(ResourceCulture.StopCycle, "停止循环出库");
if (store.storeRunStatus > StoreRunStatus.Wait)
{
if (store.autoNext)
{
string msg = store.autoMsg;
groupAuto.Text = msg;
if (btnStart.Text.Equals(StartAuto))
{
btnStart.Text = StopAuto;
}
try
{
msg = msg.Replace(AutoOut, "");
msg = msg.Replace(AutoIn, "");
//msg = msg.Replace("自动出库:", "");
//msg = msg.Replace("自动入库:", "");
int index = store.PositionNumList.IndexOf(msg);
if (index >= 0 && (!msg.Equals("")))
{
if (htpp.ContainsKey(msg))
{
var pp = (PosPos)htpp[msg];
dataGridView1.Rows[pp.row].Cells[pp.col].Selected = true;
setData(msg);
}
}
}
catch (Exception ex) { }
}
else
{
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
{
groupAuto.Text = StartAuto;
//lblWarnMsg.Text = "";
btnStart.Text = StartAuto;
}
}
private void btnSavePosition_Click(object sender, EventArgs e)
{
//料仓格子位置保存
string selectPositionNum = cmbPosition.Text;
AutoStorePosition ktkPosition = CSVPositionReader<AutoStorePosition>.GetPositon(selectPositionNum);
if (ktkPosition != null)
{
ktkPosition.MiddleAxis_Position_P2 = FormUtil.GetIntValue(txtMiddleP2);
ktkPosition.UpDownAxis_IHPosition_P3 = FormUtil.GetIntValue(txtUpDownP3);
ktkPosition.UpDownAxis_ILPosition_P4 = FormUtil.GetIntValue(txtUpDownP4);
ktkPosition.UpDownAxis_ILPosition_P4 = FormUtil.GetIntValue(txtUpDownP4);
ktkPosition.InOutAxis_Position_P3 = FormUtil.GetIntValue(txtInOutP3);
ktkPosition.CompressAxis_CPosition_P3 = FormUtil.GetIntValue(txtComP3);
ktkPosition.UpDownAxis_OHPosition_P5 = FormUtil.GetIntValue(txtUpDownP5);
ktkPosition.UpDownAxis_OLPosition_P6 = FormUtil.GetIntValue(txtUpDownP6);
ktkPosition.CompressAxis_Position_P2 = FormUtil.GetIntValue(txtComP2);
ktkPosition.InOutAxis_Batch_P2 = FormUtil.GetIntValue(txtInOutP2);
ktkPosition.InOutAxis_DoorOutPosition_P4 = FormUtil.GetIntValue(txtInoutP4);
//ktkPosition.UpDownAxis_DoorIPosition_P2 = FormUtil.GetIntValue(txtUpDownP2);
//ktkPosition.UpDownAxis_DoorOBPosition_P7 = FormUtil.GetIntValue(txtUpDownP7);
//ktkPosition.UpDownAxis_DoorIBPosition_P8 = FormUtil.GetIntValue(txtUpDownP8);
//ktkPosition.InOutAxis_DoorPosition_P2 = FormUtil.GetIntValue(txtInOutP2);
//ktkPosition.UpDownAxis_DoorOPosition_P1 = FormUtil.GetIntValue(txtUpDownP1);
}
//位置配置
string appPath = Application.StartupPath;
//如果总配置文件存在,保存到总的配置文件
string positionConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config);
if (!File.Exists(positionConfigFile))
{
positionConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config, "_" + store.StoreID.ToString());
}
bool result = CSVPositionReader<AutoStorePosition>.SavePostion(positionConfigFile, ktkPosition);
if (!result)
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.SaveError, "保存失败"));
}
//料仓固定位置保存
bool needUpdate = false;
if (ktkPosition != null)
{
if (store.Config.GetUpDownP1(ktkPosition.BagHeight) != FormUtil.GetIntValue(txtUpDownP1))
{
store.Config.UpdateUpDownP1(ktkPosition.BagHeight, FormUtil.GetIntValue(txtUpDownP1));
needUpdate = true;
}
if (store.Config.GetComP2(ktkPosition.BagHeight) != FormUtil.GetIntValue(txtComP2))
{
store.Config.UpdateComP2(ktkPosition.BagHeight, FormUtil.GetIntValue(txtComP2));
needUpdate = true;
}
}
if (needUpdate)
{
//更新缓存
StoreManager.UpdateBoxConfig(store.Config);
}
}
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex < 0 || dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Tag == null)
return;
var posid = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Tag.ToString();
setData(posid);
}
private void btnUpDownP1_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtUpDownP1);
AxisABSMove(store.Config.UpDown_Axis, value, store.Config.UpDownAxis_P1_Speed);
}
}
private void btnUpDownP3_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtUpDownP3);
AxisABSMove(store.Config.UpDown_Axis, value, store.Config.UpDownAxis_P3_Speed);
}
}
private void btnUpDownP4_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtUpDownP4);
AxisABSMove(store.Config.UpDown_Axis, value, store.Config.UpDownAxis_P4_Speed);
}
}
private void btnUpDownP5_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtUpDownP5);
AxisABSMove(store.Config.UpDown_Axis, value, store.Config.UpDownAxis_P5_Speed);
}
}
private void btnUpDownP6_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtUpDownP6);
AxisABSMove(store.Config.UpDown_Axis, value, store.Config.UpDownAxis_P6_Speed);
}
}
private void btnMiddleP2_Click(object sender, EventArgs e)
{
if (InOutIsIsP1())
{
int value = FormUtil.GetIntValue(txtMiddleP2);
AxisABSMove(store.Config.Middle_Axis, value, store.Config.MiddleAxis_P2_Speed);
}
}
private void btnInOutP3_Click(object sender, EventArgs e)
{
int value = FormUtil.GetIntValue(txtInOutP3);
AxisABSMove(store.Config.InOut_Axis, value, store.Config.InOutAxis_P3_Speed);
}
private void btnInOutP2_Click(object sender, EventArgs e)
{
int value = FormUtil.GetIntValue(txtInOutP2);
AxisABSMove(store.Config.InOut_Axis, value, store.Config.InOutAxis_P2_Speed);
}
private void btnComP2_Click(object sender, EventArgs e)
{
int value = FormUtil.GetIntValue(txtComP2);
AxisABSMove(store.Config.Comp_Axis, value, store.Config.CompAxis_P2_Speed);
//ShuoKeControls.AbsMove(store.Config.CompressAxis_Slv, value);
}
private void btnComP3_Click(object sender, EventArgs e)
{
int value = FormUtil.GetIntValue(txtComP3);
AxisABSMove(store.Config.Comp_Axis, value, store.Config.CompAxis_P3_Speed);
//ShuoKeControls.AbsMove(store.Config.CompressAxis_Slv, value);
}
private void btnInOutP4_Click(object sender, EventArgs e)
{
int value = FormUtil.GetIntValue(txtInoutP4);
AxisABSMove(store.Config.InOut_Axis, value, store.Config.InOutAxis_P2_Speed);
}
private void btnBatchOutTest_Click(object sender, EventArgs e)
{
if (store.storeRunStatus >= StoreRunStatus.HomeMoving)
{
string selectPositionNum = cmbPosition.Text;
LineMoveP ktk = LoadPostion();
store.StartOutStoreMove(new InOutStoreParam("", selectPositionNum, ktk), true);
}
else
{
MessageBox.Show(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
private LineMoveP LoadPostion()
{
LineMoveP ktk = new LineMoveP();
//ktk.ComPress_P1 = FormUtil.GetIntValue(txtComP1);
ktk.ComPress_P1 = store.Config.CompressAxis_P1_Position;
ktk.ComPress_P2 = FormUtil.GetIntValue(txtComP2);
ktk.ComPress_P3 = FormUtil.GetIntValue(txtComP3);
//ktk.InOut_P1 = FormUtil.GetIntValue(txtInOutP1);
ktk.InOut_P1 = store.Config.InOutAxis_P1_Position;
ktk.InOut_P2 = FormUtil.GetIntValue(txtInOutP2);
ktk.InOut_P4 = FormUtil.GetIntValue(txtInoutP4);
ktk.InOut_P3 = FormUtil.GetIntValue(txtInOutP3);
//ktk.Middle_P1 = FormUtil.GetIntValue(txtMiddleP1);
ktk.Middle_P1 = store.Config.MiddleAxis_P1_Position;
ktk.Middle_P2 = FormUtil.GetIntValue(txtMiddleP2);
ktk.UpDown_P1 = FormUtil.GetIntValue(txtUpDownP1);
//ktk.UpDown_Door_P7 = FormUtil.GetIntValue(txtUpDownDoor);
ktk.UpDown_Door_P7 = store.Config.UpDownAxis_Door_P7;
//ktk.UpDown_P2 = FormUtil.GetIntValue(txtUpDownP2);
ktk.UpDown_P3 = FormUtil.GetIntValue(txtUpDownP3);
ktk.UpDown_P4 = FormUtil.GetIntValue(txtUpDownP4);
ktk.UpDown_P5 = FormUtil.GetIntValue(txtUpDownP5);
ktk.UpDown_P6 = FormUtil.GetIntValue(txtUpDownP6);
//ktk.UpDown_P7 = FormUtil.GetIntValue(txtUpDownP7);
//ktk.UpDown_P8 = FormUtil.GetIntValue(txtUpDownP8);
//ktk.UpDown_OutHigh_P2 = FormUtil.GetIntValue(txtUpdownP2);
ktk.UpDown_OutHigh_P2 = store.Config.UpDownAxis_OutHigh_P2;
//ktk.UpDown_OutLow_P8 = FormUtil.GetIntValue(txtUpdownP8);
ktk.UpDown_OutLow_P8 = store.Config.UpDownAxis_OutLow_P8;
return ktk;
}
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;
string msg = ResourceCulture.GetString("确定开始{0}循环出库", "确定开始{0}循环出库", poText);
DialogResult res = MessageBox.Show(msg, ResourceCulture.GetString(ResourceCulture.MsgTitle, "提示"), MessageBoxButtons.YesNo);
if (res.Equals(DialogResult.Yes) && cmbPosition.Text != "")
{
store.CyclePosId = poText;
ConfigAppSettings.SaveValue(Setting_Init.DebugPosId, poText);
store.autoMsg = ResourceCulture.GetString("循环出库", "循环出库") + ":" + 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(ResourceCulture.GetString(ResourceCulture.PleaseStartStore, "请先启动料仓!"));
}
}
}
}

namespace OnlineStore.ACSingleStore.useControl
{
partial class uc_boxdebug
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.txtMiddleP2 = new System.Windows.Forms.TextBox();
this.btnMiddleP2 = new System.Windows.Forms.Button();
this.txtUpDownP1 = new System.Windows.Forms.TextBox();
this.txtUpDownP5 = new System.Windows.Forms.TextBox();
this.txtUpDownP6 = new System.Windows.Forms.TextBox();
this.txtUpDownP3 = new System.Windows.Forms.TextBox();
this.txtUpDownP4 = new System.Windows.Forms.TextBox();
this.btnUpDownP1 = new System.Windows.Forms.Button();
this.btnUpDownP5 = new System.Windows.Forms.Button();
this.btnUpDownP6 = new System.Windows.Forms.Button();
this.btnUpDownP3 = new System.Windows.Forms.Button();
this.btnUpDownP4 = new System.Windows.Forms.Button();
this.txtComP3 = new System.Windows.Forms.TextBox();
this.txtComP2 = new System.Windows.Forms.TextBox();
this.btnComP3 = new System.Windows.Forms.Button();
this.btnComP2 = new System.Windows.Forms.Button();
this.txtInoutP4 = new System.Windows.Forms.TextBox();
this.btnInOutP4 = new System.Windows.Forms.Button();
this.txtInOutP2 = new System.Windows.Forms.TextBox();
this.txtInOutP3 = new System.Windows.Forms.TextBox();
this.btnInOutP2 = new System.Windows.Forms.Button();
this.btnInOutP3 = new System.Windows.Forms.Button();
this.btnStart = new System.Windows.Forms.Button();
this.cmbPosition = new System.Windows.Forms.Label();
this.cmbJianGe = new System.Windows.Forms.ComboBox();
this.label30 = new System.Windows.Forms.Label();
this.btnOutStore = new System.Windows.Forms.Button();
this.btnBatchOutTest = new System.Windows.Forms.Button();
this.btnCycleOut = new System.Windows.Forms.Button();
this.groupAuto = new System.Windows.Forms.GroupBox();
this.btnSavePosition = new System.Windows.Forms.Button();
this.label_size = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.groupAuto.SuspendLayout();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.AllowUserToResizeColumns = false;
this.dataGridView1.AllowUserToResizeRows = false;
this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Top;
this.dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
this.dataGridView1.EnableHeadersVisualStyles = false;
this.dataGridView1.Location = new System.Drawing.Point(0, 0);
this.dataGridView1.MultiSelect = false;
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dataGridView1.ShowCellErrors = false;
this.dataGridView1.ShowCellToolTips = false;
this.dataGridView1.ShowEditingIcon = false;
this.dataGridView1.ShowRowErrors = false;
this.dataGridView1.Size = new System.Drawing.Size(1076, 313);
this.dataGridView1.TabIndex = 103;
this.dataGridView1.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dataGridView1_CellMouseDown);
//
// txtMiddleP2
//
this.txtMiddleP2.AcceptsReturn = true;
this.txtMiddleP2.BackColor = System.Drawing.SystemColors.Window;
this.txtMiddleP2.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtMiddleP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtMiddleP2.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtMiddleP2.Location = new System.Drawing.Point(663, 332);
this.txtMiddleP2.MaxLength = 0;
this.txtMiddleP2.Name = "txtMiddleP2";
this.txtMiddleP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtMiddleP2.Size = new System.Drawing.Size(89, 23);
this.txtMiddleP2.TabIndex = 194;
this.txtMiddleP2.Text = "1000";
//
// btnMiddleP2
//
this.btnMiddleP2.AutoSize = true;
this.btnMiddleP2.BackColor = System.Drawing.SystemColors.Control;
this.btnMiddleP2.Cursor = System.Windows.Forms.Cursors.Default;
this.btnMiddleP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnMiddleP2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btnMiddleP2.Location = new System.Drawing.Point(487, 327);
this.btnMiddleP2.Name = "btnMiddleP2";
this.btnMiddleP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnMiddleP2.Size = new System.Drawing.Size(174, 32);
this.btnMiddleP2.TabIndex = 193;
this.btnMiddleP2.Text = "旋转轴库位点P2:";
this.btnMiddleP2.UseVisualStyleBackColor = true;
this.btnMiddleP2.Click += new System.EventHandler(this.btnMiddleP2_Click);
//
// txtUpDownP1
//
this.txtUpDownP1.AcceptsReturn = true;
this.txtUpDownP1.BackColor = System.Drawing.SystemColors.Window;
this.txtUpDownP1.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpDownP1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpDownP1.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpDownP1.Location = new System.Drawing.Point(946, 332);
this.txtUpDownP1.MaxLength = 0;
this.txtUpDownP1.Name = "txtUpDownP1";
this.txtUpDownP1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpDownP1.Size = new System.Drawing.Size(89, 23);
this.txtUpDownP1.TabIndex = 210;
this.txtUpDownP1.Text = "1000";
//
// txtUpDownP5
//
this.txtUpDownP5.AcceptsReturn = true;
this.txtUpDownP5.BackColor = System.Drawing.SystemColors.Window;
this.txtUpDownP5.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpDownP5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpDownP5.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpDownP5.Location = new System.Drawing.Point(946, 443);
this.txtUpDownP5.MaxLength = 0;
this.txtUpDownP5.Name = "txtUpDownP5";
this.txtUpDownP5.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpDownP5.Size = new System.Drawing.Size(89, 23);
this.txtUpDownP5.TabIndex = 206;
this.txtUpDownP5.Text = "1000";
//
// txtUpDownP6
//
this.txtUpDownP6.AcceptsReturn = true;
this.txtUpDownP6.BackColor = System.Drawing.SystemColors.Window;
this.txtUpDownP6.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpDownP6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpDownP6.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpDownP6.Location = new System.Drawing.Point(946, 480);
this.txtUpDownP6.MaxLength = 0;
this.txtUpDownP6.Name = "txtUpDownP6";
this.txtUpDownP6.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpDownP6.Size = new System.Drawing.Size(89, 23);
this.txtUpDownP6.TabIndex = 208;
this.txtUpDownP6.Text = "1000";
//
// txtUpDownP3
//
this.txtUpDownP3.AcceptsReturn = true;
this.txtUpDownP3.BackColor = System.Drawing.SystemColors.Window;
this.txtUpDownP3.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpDownP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpDownP3.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpDownP3.Location = new System.Drawing.Point(946, 369);
this.txtUpDownP3.MaxLength = 0;
this.txtUpDownP3.Name = "txtUpDownP3";
this.txtUpDownP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpDownP3.Size = new System.Drawing.Size(89, 23);
this.txtUpDownP3.TabIndex = 202;
this.txtUpDownP3.Text = "1000";
//
// txtUpDownP4
//
this.txtUpDownP4.AcceptsReturn = true;
this.txtUpDownP4.BackColor = System.Drawing.SystemColors.Window;
this.txtUpDownP4.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtUpDownP4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtUpDownP4.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtUpDownP4.Location = new System.Drawing.Point(946, 406);
this.txtUpDownP4.MaxLength = 0;
this.txtUpDownP4.Name = "txtUpDownP4";
this.txtUpDownP4.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtUpDownP4.Size = new System.Drawing.Size(89, 23);
this.txtUpDownP4.TabIndex = 204;
this.txtUpDownP4.Text = "1000";
//
// btnUpDownP1
//
this.btnUpDownP1.AutoSize = true;
this.btnUpDownP1.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownP1.Cursor = System.Windows.Forms.Cursors.Default;
this.btnUpDownP1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpDownP1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btnUpDownP1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnUpDownP1.Location = new System.Drawing.Point(770, 327);
this.btnUpDownP1.Name = "btnUpDownP1";
this.btnUpDownP1.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnUpDownP1.Size = new System.Drawing.Size(174, 32);
this.btnUpDownP1.TabIndex = 209;
this.btnUpDownP1.Text = "升降轴吸盘下方取料点P1:";
this.btnUpDownP1.UseVisualStyleBackColor = true;
this.btnUpDownP1.Click += new System.EventHandler(this.btnUpDownP1_Click);
//
// btnUpDownP5
//
this.btnUpDownP5.AutoSize = true;
this.btnUpDownP5.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownP5.Cursor = System.Windows.Forms.Cursors.Default;
this.btnUpDownP5.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpDownP5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btnUpDownP5.Location = new System.Drawing.Point(770, 438);
this.btnUpDownP5.Name = "btnUpDownP5";
this.btnUpDownP5.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnUpDownP5.Size = new System.Drawing.Size(174, 32);
this.btnUpDownP5.TabIndex = 205;
this.btnUpDownP5.Text = "升降轴出料前点P5:";
this.btnUpDownP5.UseVisualStyleBackColor = true;
this.btnUpDownP5.Click += new System.EventHandler(this.btnUpDownP5_Click);
//
// btnUpDownP6
//
this.btnUpDownP6.AutoSize = true;
this.btnUpDownP6.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownP6.Cursor = System.Windows.Forms.Cursors.Default;
this.btnUpDownP6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpDownP6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btnUpDownP6.Location = new System.Drawing.Point(770, 475);
this.btnUpDownP6.Name = "btnUpDownP6";
this.btnUpDownP6.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnUpDownP6.Size = new System.Drawing.Size(174, 32);
this.btnUpDownP6.TabIndex = 207;
this.btnUpDownP6.Text = "升降轴出料缓冲点P6:";
this.btnUpDownP6.UseVisualStyleBackColor = true;
this.btnUpDownP6.Click += new System.EventHandler(this.btnUpDownP6_Click);
//
// btnUpDownP3
//
this.btnUpDownP3.AutoSize = true;
this.btnUpDownP3.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownP3.Cursor = System.Windows.Forms.Cursors.Default;
this.btnUpDownP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpDownP3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btnUpDownP3.Location = new System.Drawing.Point(770, 364);
this.btnUpDownP3.Name = "btnUpDownP3";
this.btnUpDownP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnUpDownP3.Size = new System.Drawing.Size(174, 32);
this.btnUpDownP3.TabIndex = 201;
this.btnUpDownP3.Text = "升降轴入料前点P3:";
this.btnUpDownP3.UseVisualStyleBackColor = true;
this.btnUpDownP3.Click += new System.EventHandler(this.btnUpDownP3_Click);
//
// btnUpDownP4
//
this.btnUpDownP4.AutoSize = true;
this.btnUpDownP4.BackColor = System.Drawing.SystemColors.Control;
this.btnUpDownP4.Cursor = System.Windows.Forms.Cursors.Default;
this.btnUpDownP4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpDownP4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btnUpDownP4.Location = new System.Drawing.Point(770, 401);
this.btnUpDownP4.Name = "btnUpDownP4";
this.btnUpDownP4.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnUpDownP4.Size = new System.Drawing.Size(174, 32);
this.btnUpDownP4.TabIndex = 203;
this.btnUpDownP4.Text = "升降轴入料缓冲点P4:";
this.btnUpDownP4.UseVisualStyleBackColor = true;
this.btnUpDownP4.Click += new System.EventHandler(this.btnUpDownP4_Click);
//
// txtComP3
//
this.txtComP3.AcceptsReturn = true;
this.txtComP3.BackColor = System.Drawing.SystemColors.Window;
this.txtComP3.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtComP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtComP3.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtComP3.Location = new System.Drawing.Point(662, 406);
this.txtComP3.MaxLength = 0;
this.txtComP3.Name = "txtComP3";
this.txtComP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtComP3.Size = new System.Drawing.Size(89, 23);
this.txtComP3.TabIndex = 214;
this.txtComP3.Text = "1000";
//
// txtComP2
//
this.txtComP2.AcceptsReturn = true;
this.txtComP2.BackColor = System.Drawing.SystemColors.Window;
this.txtComP2.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtComP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtComP2.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtComP2.Location = new System.Drawing.Point(662, 369);
this.txtComP2.MaxLength = 0;
this.txtComP2.Name = "txtComP2";
this.txtComP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtComP2.Size = new System.Drawing.Size(89, 23);
this.txtComP2.TabIndex = 212;
this.txtComP2.Text = "1000";
//
// btnComP3
//
this.btnComP3.AutoSize = true;
this.btnComP3.BackColor = System.Drawing.SystemColors.Control;
this.btnComP3.Cursor = System.Windows.Forms.Cursors.Default;
this.btnComP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnComP3.ForeColor = System.Drawing.Color.Purple;
this.btnComP3.Location = new System.Drawing.Point(487, 401);
this.btnComP3.Name = "btnComP3";
this.btnComP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnComP3.Size = new System.Drawing.Size(174, 32);
this.btnComP3.TabIndex = 213;
this.btnComP3.Text = "压紧轴压紧前点P3:";
this.btnComP3.UseVisualStyleBackColor = true;
this.btnComP3.Click += new System.EventHandler(this.btnComP3_Click);
//
// btnComP2
//
this.btnComP2.AutoSize = true;
this.btnComP2.BackColor = System.Drawing.SystemColors.Control;
this.btnComP2.Cursor = System.Windows.Forms.Cursors.Default;
this.btnComP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnComP2.ForeColor = System.Drawing.Color.Purple;
this.btnComP2.Location = new System.Drawing.Point(487, 364);
this.btnComP2.Name = "btnComP2";
this.btnComP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnComP2.Size = new System.Drawing.Size(174, 32);
this.btnComP2.TabIndex = 211;
this.btnComP2.Text = "压紧轴压紧点P2:";
this.btnComP2.UseVisualStyleBackColor = true;
this.btnComP2.Click += new System.EventHandler(this.btnComP2_Click);
//
// txtInoutP4
//
this.txtInoutP4.AcceptsReturn = true;
this.txtInoutP4.BackColor = System.Drawing.SystemColors.Window;
this.txtInoutP4.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInoutP4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInoutP4.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInoutP4.Location = new System.Drawing.Point(662, 517);
this.txtInoutP4.MaxLength = 0;
this.txtInoutP4.Name = "txtInoutP4";
this.txtInoutP4.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInoutP4.Size = new System.Drawing.Size(89, 23);
this.txtInoutP4.TabIndex = 284;
this.txtInoutP4.Text = "1000";
//
// btnInOutP4
//
this.btnInOutP4.AutoSize = true;
this.btnInOutP4.BackColor = System.Drawing.SystemColors.Control;
this.btnInOutP4.Cursor = System.Windows.Forms.Cursors.Default;
this.btnInOutP4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnInOutP4.ForeColor = System.Drawing.Color.Green;
this.btnInOutP4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnInOutP4.Location = new System.Drawing.Point(487, 512);
this.btnInOutP4.Name = "btnInOutP4";
this.btnInOutP4.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnInOutP4.Size = new System.Drawing.Size(174, 32);
this.btnInOutP4.TabIndex = 283;
this.btnInOutP4.Text = "进出轴仓门出料点P4:";
this.btnInOutP4.UseVisualStyleBackColor = true;
this.btnInOutP4.Click += new System.EventHandler(this.btnInOutP4_Click);
//
// txtInOutP2
//
this.txtInOutP2.AcceptsReturn = true;
this.txtInOutP2.BackColor = System.Drawing.SystemColors.Window;
this.txtInOutP2.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInOutP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInOutP2.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInOutP2.Location = new System.Drawing.Point(662, 443);
this.txtInOutP2.MaxLength = 0;
this.txtInOutP2.Name = "txtInOutP2";
this.txtInOutP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInOutP2.Size = new System.Drawing.Size(89, 23);
this.txtInOutP2.TabIndex = 282;
this.txtInOutP2.Text = "1000";
//
// txtInOutP3
//
this.txtInOutP3.AcceptsReturn = true;
this.txtInOutP3.BackColor = System.Drawing.SystemColors.Window;
this.txtInOutP3.Cursor = System.Windows.Forms.Cursors.IBeam;
this.txtInOutP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtInOutP3.ForeColor = System.Drawing.SystemColors.WindowText;
this.txtInOutP3.Location = new System.Drawing.Point(662, 480);
this.txtInOutP3.MaxLength = 0;
this.txtInOutP3.Name = "txtInOutP3";
this.txtInOutP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.txtInOutP3.Size = new System.Drawing.Size(89, 23);
this.txtInOutP3.TabIndex = 280;
this.txtInOutP3.Text = "1000";
//
// btnInOutP2
//
this.btnInOutP2.AutoSize = true;
this.btnInOutP2.BackColor = System.Drawing.SystemColors.Control;
this.btnInOutP2.Cursor = System.Windows.Forms.Cursors.Default;
this.btnInOutP2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnInOutP2.ForeColor = System.Drawing.Color.Green;
this.btnInOutP2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnInOutP2.Location = new System.Drawing.Point(487, 438);
this.btnInOutP2.Name = "btnInOutP2";
this.btnInOutP2.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnInOutP2.Size = new System.Drawing.Size(174, 32);
this.btnInOutP2.TabIndex = 281;
this.btnInOutP2.Text = "进出轴吸盘取料点P2:";
this.btnInOutP2.UseVisualStyleBackColor = true;
this.btnInOutP2.Click += new System.EventHandler(this.btnInOutP2_Click);
//
// btnInOutP3
//
this.btnInOutP3.AutoSize = true;
this.btnInOutP3.BackColor = System.Drawing.SystemColors.Control;
this.btnInOutP3.Cursor = System.Windows.Forms.Cursors.Default;
this.btnInOutP3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnInOutP3.ForeColor = System.Drawing.Color.Green;
this.btnInOutP3.Location = new System.Drawing.Point(487, 475);
this.btnInOutP3.Name = "btnInOutP3";
this.btnInOutP3.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.btnInOutP3.Size = new System.Drawing.Size(174, 32);
this.btnInOutP3.TabIndex = 279;
this.btnInOutP3.Text = "进出轴库位取料点P3:";
this.btnInOutP3.UseVisualStyleBackColor = true;
this.btnInOutP3.Click += new System.EventHandler(this.btnInOutP3_Click);
//
// 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(202, 20);
this.btnStart.Name = "btnStart";
this.btnStart.Size = new System.Drawing.Size(182, 38);
this.btnStart.TabIndex = 285;
this.btnStart.Text = "开始自动出入库";
this.btnStart.UseVisualStyleBackColor = true;
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
//
// cmbPosition
//
this.cmbPosition.Location = new System.Drawing.Point(68, 34);
this.cmbPosition.Name = "cmbPosition";
this.cmbPosition.Size = new System.Drawing.Size(128, 23);
this.cmbPosition.TabIndex = 286;
this.cmbPosition.Text = "label1";
//
// cmbJianGe
//
this.cmbJianGe.AutoCompleteCustomSource.AddRange(new string[] {
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10"});
this.cmbJianGe.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbJianGe.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbJianGe.FormattingEnabled = true;
this.cmbJianGe.Location = new System.Drawing.Point(238, 69);
this.cmbJianGe.Name = "cmbJianGe";
this.cmbJianGe.Size = new System.Drawing.Size(146, 28);
this.cmbJianGe.TabIndex = 288;
//
// label30
//
this.label30.Cursor = System.Windows.Forms.Cursors.Default;
this.label30.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label30.ForeColor = System.Drawing.SystemColors.ControlText;
this.label30.Location = new System.Drawing.Point(10, 65);
this.label30.Name = "label30";
this.label30.RightToLeft = System.Windows.Forms.RightToLeft.No;
this.label30.Size = new System.Drawing.Size(222, 36);
this.label30.TabIndex = 287;
this.label30.Text = "入库存料库位间隔:";
this.label30.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// 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(13, 104);
this.btnOutStore.Name = "btnOutStore";
this.btnOutStore.Size = new System.Drawing.Size(182, 38);
this.btnOutStore.TabIndex = 289;
this.btnOutStore.Text = "单盘出库测试";
this.btnOutStore.UseVisualStyleBackColor = true;
this.btnOutStore.Click += new System.EventHandler(this.btnOutStore_Click);
//
// 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(202, 103);
this.btnBatchOutTest.Name = "btnBatchOutTest";
this.btnBatchOutTest.Size = new System.Drawing.Size(182, 38);
this.btnBatchOutTest.TabIndex = 290;
this.btnBatchOutTest.Text = "批量出库测试";
this.btnBatchOutTest.UseVisualStyleBackColor = true;
this.btnBatchOutTest.Click += new System.EventHandler(this.btnBatchOutTest_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(202, 147);
this.btnCycleOut.Name = "btnCycleOut";
this.btnCycleOut.Size = new System.Drawing.Size(182, 38);
this.btnCycleOut.TabIndex = 291;
this.btnCycleOut.Text = "开始循环出库";
this.btnCycleOut.UseVisualStyleBackColor = true;
this.btnCycleOut.Click += new System.EventHandler(this.btnCycleOut_Click);
//
// groupAuto
//
this.groupAuto.Controls.Add(this.btnBatchOutTest);
this.groupAuto.Controls.Add(this.btnCycleOut);
this.groupAuto.Controls.Add(this.btnStart);
this.groupAuto.Controls.Add(this.label_size);
this.groupAuto.Controls.Add(this.cmbPosition);
this.groupAuto.Controls.Add(this.btnOutStore);
this.groupAuto.Controls.Add(this.label30);
this.groupAuto.Controls.Add(this.cmbJianGe);
this.groupAuto.Location = new System.Drawing.Point(3, 327);
this.groupAuto.Name = "groupAuto";
this.groupAuto.Size = new System.Drawing.Size(444, 213);
this.groupAuto.TabIndex = 292;
this.groupAuto.TabStop = false;
this.groupAuto.Text = "自动出入库";
//
// btnSavePosition
//
this.btnSavePosition.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSavePosition.Location = new System.Drawing.Point(884, 517);
this.btnSavePosition.Name = "btnSavePosition";
this.btnSavePosition.Size = new System.Drawing.Size(151, 38);
this.btnSavePosition.TabIndex = 293;
this.btnSavePosition.Text = "保存位置";
this.btnSavePosition.UseVisualStyleBackColor = true;
this.btnSavePosition.Click += new System.EventHandler(this.btnSavePosition_Click);
//
// label_size
//
this.label_size.Location = new System.Drawing.Point(11, 34);
this.label_size.Name = "label_size";
this.label_size.Size = new System.Drawing.Size(51, 23);
this.label_size.TabIndex = 286;
this.label_size.Text = "label1";
//
// uc_boxdebug
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnSavePosition);
this.Controls.Add(this.groupAuto);
this.Controls.Add(this.txtInoutP4);
this.Controls.Add(this.btnInOutP4);
this.Controls.Add(this.txtInOutP2);
this.Controls.Add(this.txtInOutP3);
this.Controls.Add(this.btnInOutP2);
this.Controls.Add(this.btnInOutP3);
this.Controls.Add(this.txtComP3);
this.Controls.Add(this.txtComP2);
this.Controls.Add(this.btnComP3);
this.Controls.Add(this.btnComP2);
this.Controls.Add(this.txtUpDownP1);
this.Controls.Add(this.txtUpDownP5);
this.Controls.Add(this.txtUpDownP6);
this.Controls.Add(this.txtUpDownP3);
this.Controls.Add(this.txtUpDownP4);
this.Controls.Add(this.btnUpDownP1);
this.Controls.Add(this.btnUpDownP5);
this.Controls.Add(this.btnUpDownP6);
this.Controls.Add(this.btnUpDownP3);
this.Controls.Add(this.btnUpDownP4);
this.Controls.Add(this.txtMiddleP2);
this.Controls.Add(this.btnMiddleP2);
this.Controls.Add(this.dataGridView1);
this.Name = "uc_boxdebug";
this.Size = new System.Drawing.Size(1076, 573);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.groupAuto.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.DataGridView dataGridView1;
public System.Windows.Forms.TextBox txtMiddleP2;
public System.Windows.Forms.Button btnMiddleP2;
public System.Windows.Forms.TextBox txtUpDownP1;
public System.Windows.Forms.TextBox txtUpDownP5;
public System.Windows.Forms.TextBox txtUpDownP6;
public System.Windows.Forms.TextBox txtUpDownP3;
public System.Windows.Forms.TextBox txtUpDownP4;
public System.Windows.Forms.Button btnUpDownP1;
public System.Windows.Forms.Button btnUpDownP5;
public System.Windows.Forms.Button btnUpDownP6;
public System.Windows.Forms.Button btnUpDownP3;
public System.Windows.Forms.Button btnUpDownP4;
public System.Windows.Forms.TextBox txtComP3;
public System.Windows.Forms.TextBox txtComP2;
public System.Windows.Forms.Button btnComP3;
public System.Windows.Forms.Button btnComP2;
public System.Windows.Forms.TextBox txtInoutP4;
public System.Windows.Forms.Button btnInOutP4;
public System.Windows.Forms.TextBox txtInOutP2;
public System.Windows.Forms.TextBox txtInOutP3;
public System.Windows.Forms.Button btnInOutP2;
public System.Windows.Forms.Button btnInOutP3;
private System.Windows.Forms.Button btnStart;
private System.Windows.Forms.Label cmbPosition;
private System.Windows.Forms.ComboBox cmbJianGe;
public System.Windows.Forms.Label label30;
private System.Windows.Forms.Button btnOutStore;
private System.Windows.Forms.Button btnBatchOutTest;
private System.Windows.Forms.Button btnCycleOut;
private System.Windows.Forms.GroupBox groupAuto;
private System.Windows.Forms.Button btnSavePosition;
private System.Windows.Forms.Label label_size;
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>Common</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......@@ -33,9 +33,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<HintPath>..\..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\dll\Newtonsoft.Json.dll</HintPath>
......
......@@ -36,19 +36,23 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Asa.Camera.VisionLib">
<HintPath>..\..\..\camera\Asa.Camera.VisionLib.dll</HintPath>
</Reference>
<Reference Include="Asa.IOModule.AIOBOX, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
</Reference>
<Reference Include="CodeLibrary">
<HintPath>..\..\dll\CodeLibrary.dll</HintPath>
<Reference Include="CodeLibrary, Version=1.0.7844.17688, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\GeneralClassLibrary\CodeLibraryProject\CodeLibrary\bin\Debug\CodeLibrary.dll</HintPath>
</Reference>
<Reference Include="halcondotnet">
<HintPath>..\..\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<HintPath>..\..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
......@@ -76,6 +80,7 @@
<Compile Include="DeviceLibrary\PanasonicServo\ACServerManager_Partial.cs" />
<Compile Include="DeviceLibrary\PanasonicServo\BatchAxisController.cs" />
<Compile Include="ResourceControl.cs" />
<Compile Include="store\Camera.cs" />
<Compile Include="store\LineMoveP.cs" />
<Compile Include="store\LineAlarm.cs">
<SubType>Code</SubType>
......
......@@ -74,17 +74,22 @@ namespace OnlineStore.DeviceLibrary
aioBox = new AIOBOX("AIOBOX");
aioBox.SetType(Asa.IOModule.Box_Type.DI, DILength, Asa.IOModule.Box_Type.DO, DOLength);
aioBox.IP = ioIp;
aioBox.Upload = false;
aioBox.Upload = true;
aioBox.DI_Changed_Event += AioBox_DI_Changed_Event; ;
aioBox.DI_Changed_Event += AioBox_DI_Changed_Event;
aioBox.DO_Changed_Event += AioBox_DO_Changed_Event;
LogUtil.info("开始连接:" + logName + ":");
aioBox.Connect();
AIOMap.Add(ioIp, aioBox);
Thread.Sleep(5);
for (int i=0;i<15;i++)
{
if (aioBox.IsConn)
break;
Thread.Sleep(1000);
}
LogUtil.info("连接成功:" + logName + ":");
//读取所有的DO
ReadAllDI(ioIp, 0);
Thread.Sleep(5);
......
......@@ -48,7 +48,8 @@ namespace OnlineStore.DeviceLibrary
continue;
}
//LogUtil.info("加载到配置摄像机名称:" + str.Trim());
cameraNameList.Add(str.Trim());
if (!cameraNameList.Contains(str.Trim()))
cameraNameList.Add(str.Trim());
}
string[] codeArray = codeStr.Split(spiltChar);
foreach (string str in codeArray)
......@@ -99,6 +100,7 @@ namespace OnlineStore.DeviceLibrary
catch (Exception ex)
{
LogUtil.error("加载HIK相机出错:" + ex.ToString());
return;
}
}
string[] names = Camera._cam.Name;
......@@ -155,44 +157,65 @@ namespace OnlineStore.DeviceLibrary
DateTime startTime = DateTime.Now;
LogUtil.info( " 【" + cameraName + "】开始取图片");
HalconDotNet.HObject ho_Image = null;
Bitmap bit=null;
try
{
ho_Image = Camera._cam.CaptureOnImage(cameraName);
if (ho_Image == null)
{
LogUtil.error( " 【" + cameraName + "】取图片失败[" + Camera._cam.ErrInfo + "],关闭相机");
CloseCamera(cameraName);
continue;
}
ho_Image = Camera._cam.CaptureOnImage(cameraName,out bit,true);
//if (ho_Image == null)
//{
// LogUtil.error( " 【" + cameraName + "】取图片失败[" + Camera._cam.ErrInfo + "],关闭相机");
// CloseCamera(cameraName);
// continue;
//}
LogUtil.info( " 【" + cameraName + "】取图片完成,开始扫码");
List<CodeInfo> cc = new List<CodeInfo>();
string r = "";
foreach (string codeType in codeTypeList)
//foreach (string codeType in codeTypeList)
//{
// //判断是否是一维码
// if (codeType.ToLower().Equals("barcode"))
// {
// cc = HDCodeHelper.DecodeBarCode(ho_Image);
// }
// else
// {
// cc = HDCodeHelper.DecodeCode(ho_Image, codeType, GetCodeParamFilePath(codeType), codeCount, 2000);
// }
// foreach (CodeInfo c in cc)
// {
// string str = CodeManager.ReplaceCode(c.CodeStr);
// if (!codeList.Contains(str))
// {
// codeList.Add(str);
// r = r + "##" + str;
// }
// }
//}
RemoteDecodeHelper.RemoteDecodeParam remoteDecodeParam = new RemoteDecodeHelper.RemoteDecodeParam
{
//判断是否是一维码
if (codeType.ToLower().Equals("barcode"))
{
cc = HDCodeHelper.DecodeBarCode(ho_Image);
}
else
{
cc = HDCodeHelper.DecodeCode(ho_Image, codeType, GetCodeParamFilePath(codeType), codeCount, 2000);
}
foreach (CodeInfo c in cc)
{
string str = CodeManager.ReplaceCode(c.CodeStr);
if (!codeList.Contains(str))
{
codeList.Add(str);
r = r + "##" + str;
}
}
codeTypeList = codeTypeList.ToArray(),
codeCount = QRCodeCount,
timeout = 3000
};
cc = RemoteDecodeHelper.DecodeRequest(bit, remoteDecodeParam);
if (cc==null || cc.Count==0)
{
cc = new List<CodeInfo>();
SaveImageToFile("MIMO", cameraName, bit);
LogUtil.info(" 【" + cameraName + "】" + " 扫码失败");
}
if (String.IsNullOrEmpty(r))
foreach (CodeInfo c in cc)
{
// SaveImageToFile(deviceName, cameraName, bit);
string str = CodeManager.ReplaceCode(c.CodeStr);
if (!codeList.Contains(str))
{
codeList.Add(str);
r = r + "##" + str;
}
}
LogUtil.info( " 【" + cameraName + "】"+ " 扫码完成【" + FormUtil.GetSpanStr(DateTime.Now - startTime) + "】 :" + r);
}
catch (AccessViolationException e)
{
......@@ -210,6 +233,8 @@ namespace OnlineStore.DeviceLibrary
{
ho_Image.Dispose();
}
if (bit != null)
bit.Dispose();
}
}
}
......
......@@ -505,10 +505,10 @@
1#AC1_9_3_14,10,8,7,1,1,173300,971572,977672,977672,971572,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_15,9,8,7,1,1,173300,987881,993981,993981,987881,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_16,8,8,7,1,1,173300,1003981,1010081,1010081,1003981,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_17,7,8,7,1,1,173300,1021500,1027600,1027600,1021500,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_18,6,8,7,1,1,173300,1037899,1043999,1043999,1037899,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_19,5,8,7,1,1,173300,1054258,1060358,1060358,1054258,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_20,4,8,7,1,1,173300,1071046,1077146,1077146,1071046,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_21,3,8,7,1,1,173300,1087092,1093192,1093192,1087092,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_22,2,8,7,1,1,173300,1103500,1109600,1109600,1103500,77000,417100,358300,101000,87000,,,,,,,
1#AC1_9_3_23,1,8,7,1,1,173300,1119409,1125509,1125509,1119409,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_17,7,8,7,1,1,173300,1021500,1027600,1027600,1021500,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_18,6,8,7,1,1,173300,1037899,1043999,1043999,1037899,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_19,5,8,7,1,1,173300,1054258,1060358,1060358,1054258,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_20,4,8,7,1,1,173300,1071046,1077146,1077146,1071046,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_21,3,8,7,1,1,173300,1087092,1093192,1093192,1087092,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_22,2,8,7,1,1,173300,1103500,1109600,1109600,1103500,77000,417100,358300,101000,87000,,,,,,,
1#AC1_10_3_23,1,8,7,1,1,173300,1119409,1125509,1125509,1119409,77000,417100,358300,101000,87000,,,,,,,
......@@ -1274,7 +1274,7 @@ namespace OnlineStore.DeviceLibrary
try
{
TimeSpan span = DateTime.Now - preProTime;
if (span.TotalSeconds < 10)
if (span.TotalSeconds < 2)
{
return;
}
......@@ -1513,7 +1513,7 @@ namespace OnlineStore.DeviceLibrary
}
public void LoguStatus()
{
LogUtil.error(StoreName + "当前状态:" + "isInSuddenDown[" + isInSuddenDown + "],isNoAirCheck[" + isNoAirCheck + "]," + "StoreMove.MoveType[" + StoreMove.MoveType + "],storeRunStatus[" + storeRunStatus + "]", 106);
LogUtil.error(StoreName + "当前状态:" + $"lastPosId[{lastPosId}], isInSuddenDown[" + isInSuddenDown + "],isNoAirCheck[" + isNoAirCheck + "]," + "StoreMove.MoveType[" + StoreMove.MoveType + "],storeRunStatus[" + storeRunStatus + "]", 106);
}
#region 温湿度处理
......@@ -1742,11 +1742,7 @@ namespace OnlineStore.DeviceLibrary
if (IsDebug)
{
boxStatus.status = (int)StoreStatus.Debugging;
}
else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.posId, lastPosId);
}
}
else if (!lastPosId.Equals(""))
{
boxStatus.data.Add(ParamDefine.posId, lastPosId);
......@@ -1757,6 +1753,10 @@ namespace OnlineStore.DeviceLibrary
}
lastPosId = "";
}
else if (storeStatus.Equals(StoreStatus.OutStoreBoxEnd) || storeStatus.Equals(StoreStatus.InStoreEnd))
{
boxStatus.data.Add(ParamDefine.posId, lastPosId);
}
ASTemperateParam param = HumitureController.LastData;
if (param != null)
......
......@@ -33,7 +33,10 @@ namespace OnlineStore.DeviceLibrary
//private static StoreMoveType lastMoveType = StoreMoveType.None;
#endregion
/// <summary>
/// PosId, InOut,isSuccess
/// </summary>
public event Action<string, StoreMoveType, bool> InOutEndProcessEvent;
#region 出入库参数
private int CurrInOutCount = 0;
......@@ -551,7 +554,7 @@ namespace OnlineStore.DeviceLibrary
lastPosIdStatus = StoreStatus.InStoreEnd;
storeStatus = StoreStatus.InStoreEnd;
//手动发给服务器状态,防止没有手动
//Task.Factory.StartNew(delegate { SendLineStatus(); });
Task.Run(delegate { SendLineStatus(); });
StoreMove.NextMoveStep(StoreMoveStep.SI_12_PutWareToBag);
ComMoveToPosition(moveP.ComPress_P3, Config.CompAxis_P3_Speed);
......@@ -582,7 +585,7 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Runing;
//设备连接,入库后,BOX恢复原始状态
storeStatus = StoreStatus.StoreOnline;
InOutEndProcess(StoreMoveType.InStore);
InOutEndProcess(posId,StoreMoveType.InStore);
}
#region 送出料盘处理
else if (StoreMove.MoveStep == StoreMoveStep.SI_21_DeviceToDoor)
......@@ -927,7 +930,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(LOGGER, StoreName + " 【" + posId + "】 出库中断,请检查料盘是否已满,耗时【" + FormUtil.GetSpanStr(InOutWatch.Elapsed) + "】!");
StoreMove.EndMove();
storeRunStatus = StoreRunStatus.Runing;
InOutEndProcess(StoreMoveType.OutStore);
InOutEndProcess(posId,StoreMoveType.OutStore);
return;
}
}
......@@ -1085,10 +1088,12 @@ namespace OnlineStore.DeviceLibrary
string posId = StoreMove.MoveParam != null ? StoreMove.MoveParam.PositionNum : "";
storeStatus = StoreStatus.StoreOnline;
LogUtil.info(LOGGER, "【" + posId + "】出库结束,耗时【" + FormUtil.GetSpanStr(InOutWatch.Elapsed) + "】累积出库: " + AutomaticBaiting.BatchOutStoreCount + "盘共" + AutomaticBaiting.BatchOutStoreHeight + "mm");
StoreMove.EndMove();
preProTime = DateTime.Now;
storeRunStatus = StoreRunStatus.Runing;
InOutEndProcess(StoreMoveType.OutStore);
lastPosId = "";
InOutEndProcess(posId,StoreMoveType.OutStore);
}
else
......@@ -1305,10 +1310,11 @@ namespace OnlineStore.DeviceLibrary
}
return posid;
}
private void InOutEndProcess(StoreMoveType storeMoveType)
private void InOutEndProcess(string posid,StoreMoveType storeMoveType)
{
try
{
InOutEndProcessEvent?.Invoke(posid, storeMoveType, true);
CurrInOutCount++;
CurrInOutACount++;
......
......@@ -344,7 +344,7 @@ namespace OnlineStore.DeviceLibrary
}
if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I01_Wait))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveToUp);
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveToDown);
if (IOManager.IOValue(IO_Type.TrayCheck_LoadMaterial).Equals(IO_VALUE.HIGH))
{
InStoreLog(" 已检测到料盘,轴不需要上升");
......@@ -355,6 +355,21 @@ namespace OnlineStore.DeviceLibrary
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.BatchAxis_P3, StoreManager.Config.Batch_Axis.TargetSpeed, IO_Type.TrayCheck_LoadMaterial);
}
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I02_MoveToDown))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveReUp);
int currBatchValue = ACServerManager.GetActualtPosition(StoreManager.Config.Batch_Axis.DeviceName, StoreManager.Config.Batch_Axis.GetAxisValue());
var tatget = currBatchValue - AutomaticBaiting.AxisChangeValue * 15;
InStoreLog($" 轴下降15mm,curr:{currBatchValue},target:{tatget}");
ACAxisAbsMove(StoreManager.Config.Batch_Axis, tatget, StoreManager.Config.BatchAxis_P1_Speed);
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I02_MoveReUp))
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveToUp);
InStoreLog(" 轴重新上升到检测到料盘,速度【" + StoreManager.Config.BatchAxis_SlowSpeed + "】");
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.BatchAxis_P3, StoreManager.Config.BatchAxis_SlowSpeed, IO_Type.TrayCheck_LoadMaterial);
}
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I02_MoveToUp))
{
IsNeedScanCode();
......@@ -362,7 +377,7 @@ namespace OnlineStore.DeviceLibrary
else if (StoreMove.MoveStep.Equals(StoreMoveStep.AUTO_I03_ScanCode))
{
if (ScanTask == null || ScanTask.IsCompleted)
{
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I04_SuckingDisc_Down);
InStoreLog(" 扫码结束,二维码【" + LastCode + "】 吸盘开始下降");
CylinderMove(IO_Type.ClampingDisc_Down, IO_Type.ClampingDisc_Up, true);
......@@ -676,7 +691,7 @@ namespace OnlineStore.DeviceLibrary
{
StoreMove.NextMoveStep(StoreMoveStep.AUTO_I02_MoveToUp);
InStoreLog(" 轴上升到检测到料盘,速度【" + StoreManager.Config.Batch_Axis.TargetSpeed + "】");
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.BatchAxis_P3, StoreManager.Config.Batch_Axis.TargetSpeed, IO_Type.TrayCheck_LoadMaterial);
ACAxisSpeedMove(StoreManager.Config.Batch_Axis, StoreManager.Config.BatchAxis_P3, StoreManager.Config.BatchAxis_SlowSpeed, IO_Type.TrayCheck_LoadMaterial);
}
}
......
using Asa.Camera;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
namespace OnlineStore
{
public class HIKCamera
{
Thread camerathread;
Asa.Camera.VisionLib camera;
public string Name = "";
public event EventHandler<Bitmap> camera_event;
public string DeviceName = "monitor1";
public void LoadCameraConfig()
{
string path = @".\StoreConfig\Camera.json";
if (!File.Exists(path))
{
LogUtil.error(Name + "找不到监控相机配置文件" + path);
return;
}
try
{
var configtxt = File.ReadAllText(path);
if (configtxt.IndexOf("Pwd") > 0)
{
configtxt = configtxt.Replace("Pwd", "Password");
configtxt = configtxt.Replace("\"8000\"", "8000");
File.WriteAllText(path, configtxt);
}
var m = Regex.Match(configtxt, "name\".*?\"(.+)\"", RegexOptions.IgnoreCase);
DeviceName = m.Groups[1].Value;
camera = new VisionLib(path, "HIK.IPCamera");
}
catch (Exception e)
{
LogUtil.error(Name + "加载监控相机配置文件失败:" + e.ToString());
return;
}
camera.Open(DeviceName);
Bitmap bmp = camera.GetImage(DeviceName);
if (bmp == null)
{
LogUtil.error(Name + $"监控相机打开失败");
}
camerathread = new Thread(new ThreadStart(startCamera));
camerathread.Start();
GC.KeepAlive(camerathread);
}
int errortimes = 0;
void startCamera()
{
while (true)
{
try
{
Bitmap bmp = camera.GetImage(DeviceName);
if (bmp != null)
{
errortimes = 0;
camera_event?.Invoke(this, bmp);
}
else if (bmp == null && errortimes < 5)
{
errortimes++;
LogUtil.error(Name + $"相机获取图像出错,{errortimes}");
}
else if (errortimes == 5)
{
camera.Open();
errortimes++;
LogUtil.error(Name + $"相机错误次数过多,重新打开,{errortimes}");
}
else if (errortimes == 6)
{
LogUtil.error(Name + $"相机连接失败, 相机线程退出,{errortimes}");
break;
}
Thread.Sleep(1000 / 7);
}
catch
{
errortimes++;
}
}
camera.Close();
camera.Dispose();
}
void CameraGrabOne(string filename)
{
try
{
LogUtil.info(Name + "库位文件名:" + filename);
Bitmap bmp = camera.GetImage(DeviceName);
if (bmp != null)
{
if (File.Exists(filename))
File.Delete(filename);
bmp.Save(filename, ImageFormat.Jpeg);
bmp.Dispose();
}
}
catch (Exception e)
{
LogUtil.error(Name + e.ToString());
}
}
string GetFixtureStateFilename(InOutStoreParam inOutParam,StoreMoveType storeMoveType, FixtureState fixtureState)
{
string dir = $"\\image\\Fixture\\{storeMoveType}\\{inOutParam.PositionNum}\\";
Directory.CreateDirectory(dir);
string filename = $"{inOutParam.WareNumber}@@{fixtureState}.jpg";
foreach (var x in Path.GetInvalidFileNameChars())
{
filename = filename.Replace(x.ToString(), "");
}
return dir + filename;
}
enum FixtureState
{
In,
Up,
Down,
Out
}
}
}
......@@ -506,6 +506,8 @@ namespace OnlineStore.DeviceLibrary
#endregion
#region 自动上下料上料功能
AUTO_I02_MoveToDown,
AUTO_I02_MoveReUp,
/// <summary>
/// 开始自动上料
/// </summary>
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......@@ -33,9 +33,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<HintPath>..\..\..\增广夹爪\Rmaxis\bin\Debug\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!