Commit 13ad6d98 LN

夹爪修改

1 个父辈 3cce09bf
正在显示 48 个修改的文件 包含 1016 行增加435 行删除
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<doc>
<assembly>
<name>Neotel.Rmaxis</name>
</assembly>
<members>
<member name="T:Neotel.Rmaxis">
<summary>
增广智能电动夹爪(RM-C控制器)
</summary>
</member>
<member name="M:Neotel.Rmaxis.#ctor(System.String)">
<summary>
增广智能电动夹爪(RM-C控制器)
</summary>
<param name="logName">日志名</param>
</member>
<member name="P:Neotel.Rmaxis.IsPortOpen">
<summary>
串口是否连接
</summary>
</member>
<member name="P:Neotel.Rmaxis.IsMoving">
<summary>
轴是否在运动
</summary>
</member>
<member name="P:Neotel.Rmaxis.IsReached">
<summary>
轴是否到达运动目标
</summary>
</member>
<member name="P:Neotel.Rmaxis.IsPushEmpty">
<summary>
轴是否推空(可以在Push完成后检测是否推压/夹持为空)
</summary>
</member>
<member name="P:Neotel.Rmaxis.ErrorCode">
<summary>
错误代码
</summary>
</member>
<member name="M:Neotel.Rmaxis.OpenPort(System.String,System.UInt16)">
<summary>
打开串口
</summary>
<param name="portName">串口名</param>
<param name="axisNo">轴号</param>
<returns></returns>
</member>
<member name="M:Neotel.Rmaxis.ClosePort">
<summary>
关闭串口
</summary>
</member>
<member name="M:Neotel.Rmaxis.ResetError">
<summary>
重置控制器错误
</summary>
</member>
<member name="M:Neotel.Rmaxis.StopAxis">
<summary>
停止轴运动
</summary>
</member>
<member name="M:Neotel.Rmaxis.GetVersion">
<summary>
控制器版本号
</summary>
<returns></returns>
</member>
<member name="M:Neotel.Rmaxis.GetTorque">
<summary>
获取当前设置的出力值
</summary>
<returns>出力,%</returns>
</member>
<member name="M:Neotel.Rmaxis.GetVelocity">
<summary>
获取当前电机速度
</summary>
<returns>速度,mm/s</returns>
</member>
<member name="M:Neotel.Rmaxis.GetPosition">
<summary>
获取当前位置
</summary>
<returns>位置,mm</returns>
</member>
<member name="M:Neotel.Rmaxis.GoHome">
<summary>
回原点
</summary>
</member>
<member name="M:Neotel.Rmaxis.Push(System.Single,System.Single,System.Single)">
<summary>
推压运动
</summary>
<param name="force">出力,%</param>
<param name="distance">距离,mm</param>
<param name="velocity">速度,mm/s</param>
</member>
<member name="M:Neotel.Rmaxis.MoveAbsolute(System.Single,System.Single,System.Single,System.Single,System.Single)">
<summary>
绝对运动
</summary>
<param name="position">位置,mm</param>
<param name="velocity">速度,mm/s</param>
<param name="acceleration">加速度,mm/s^2</param>
<param name="deacceleration">减速度,mm/s^2</param>
<param name="band">定位范围,mm</param>
</member>
<member name="M:Neotel.Rmaxis.MoveTo(System.Single)">
<summary>
直接运动到指定位置
</summary>
<param name="position">位置,mm</param>
</member>
<member name="M:Neotel.Rmaxis.MoveConfig(System.Single,System.Single,System.Single)">
<summary>
直接运动的参数
</summary>
<param name="velocity">速度,mm/s</param>
<param name="acceleration">加速度,mm/s^2</param>
<param name="deacceleration">减速度,mm/s^2</param>
</member>
<member name="M:Neotel.Rmaxis.GoHomeWait(System.Int32)">
<summary>
回原点,并等到到位
</summary>
<param name="timeout">超时时间,ms</param>
<returns></returns>
</member>
<member name="M:Neotel.Rmaxis.PushWait(System.Single,System.Single,System.Single,System.Int32)">
<summary>
推压运动,并等到到位
</summary>
<param name="force">出力,%</param>
<param name="distance">距离,mm</param>
<param name="velocity">速度,mm/s</param>
<param name="timeout">超时时间,ms</param>
<returns></returns>
</member>
<member name="M:Neotel.Rmaxis.MoveAbsoluteWait(System.Single,System.Single,System.Single,System.Single,System.Single,System.Int32)">
<summary>
绝对运动,并等到到位
</summary>
<param name="position">位置,mm</param>
<param name="velocity">速度,mm/s</param>
<param name="acceleration">加速度,mm/s^2</param>
<param name="deacceleration">减速度,mm/s^2</param>
<param name="band">定位范围,mm</param>
<param name="timeout">超时时间,ms</param>
<returns></returns>
</member>
<member name="M:Neotel.Rmaxis.MoveToWait(System.Single,System.Int32)">
<summary>
直接运动到指定位置,并等到到位
</summary>
<param name="position">位置,mm</param>
<param name="timeout">超时时间,ms</param>
<returns></returns>
</member>
</members>
</doc>
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
<?xml version="1.0"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
......@@ -20,7 +20,7 @@
<add key="ConfigPath_MoveEquip" value="\LineConfig\MoveEquip\Config_MoveEquip.csv" />
<add key="ConfigPath_FeedingEquip" value="\LineConfig\Config_FeedingEquip.csv" />
<add key="ConfigPath_HYEquip" value="\LineConfig\HY\Config_HYEquip.csv" />
<add key ="ConfigPath_TrayList" value ="\LineConfig\TrayList.data"/>
<add key="ConfigPath_TrayList" value="\LineConfig\TrayList.data" />
<add key="Line_Type" value="Line" />
<add key="Line_CID" value="so827" />
<!--end one store config-->
......@@ -59,10 +59,10 @@
<add key="Feed_LastShelfID_102" value="B23" />
<add key="Feed_LastShelfID_103" value="B25" />
<add key="Feed_LastShelfID_104" value="B7" />
<add key ="SaveErrorImageToFile" value ="1"/>
<add key ="UseHCBoard" value ="1"/>
<add key ="ShowIOForm" value ="1"/>
<add key ="RfidServer_Port" value ="12001"/>
<add key="SaveErrorImageToFile" value="1" />
<add key="UseHCBoard" value="1" />
<add key="ShowIOForm" value="1" />
<add key="RfidServer_Port" value="12001" />
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
......@@ -115,4 +115,12 @@
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
......@@ -64,13 +64,14 @@
<Reference Include="halcondotnet">
<HintPath>..\..\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
......@@ -159,6 +160,12 @@
<Compile Include="ManagerUtil.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="useControl\ClampJawControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="useControl\ClampJawControl.Designer.cs">
<DependentUpon>ClampJawControl.cs</DependentUpon>
</Compile>
<Compile Include="useControl\EquipControl.cs">
<SubType>UserControl</SubType>
</Compile>
......@@ -211,9 +218,13 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="useControl\ClampJawControl.resx">
<DependentUpon>ClampJawControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="useControl\EquipControl.resx">
<DependentUpon>EquipControl.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
......
......@@ -69,16 +69,10 @@ namespace OnlineStore.AssemblyLine
{
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + ioValue.Explain, ioValue.ProName);
control.Click += Control_Click;
//if (i >= maxCount)
//{
// this.tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
// this.tableLayoutPanel4.Controls.Add(control, 0, roleindex - maxCount);
//}
//else
{
this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
this.tableLayoutPanel2.Controls.Add(control, 0, roleindex);
}
this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 28));
this.tableLayoutPanel2.Controls.Add(control, 0, roleindex);
roleindex++;
i++;
DOControlList.Add(ioValue.ProName, control);
......@@ -238,7 +232,8 @@ namespace OnlineStore.AssemblyLine
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
chbDebug.Checked = equipBean.IsDebug;
clampJawControl1.clampJaw = equipBean.ClampJwa;
clampJawControl1.ShowData();
chbMoveStop.Checked = equipBean.MoveStop;
axisMoveControl1.LoadData(equipBean, new AxisBean[] { equipBean.UpdownAxis, equipBean.BatchAxis });
......@@ -253,16 +248,7 @@ namespace OnlineStore.AssemblyLine
lblThisSta.Text = equipBean.WarnMsg;
txtP1.Text = equipBean.Config.UpDownAxisP1.ToString();
txtUpdownP3.Text = equipBean.Config.UpDownAxisP3.ToString();
if (equipBean.HasOutLine)
{
SL_RollerLine_Run.Visible = true;
SL_OutLine_Run.Visible = true;
}
else
{
SL_RollerLine_Run.Visible = false;
SL_OutLine_Run.Visible = false ;
}
LoadDP2();
LoadDOBtn(groupDO);
txtBp1.Text = equipBean.Config.BatchAxisP1.ToString();
......@@ -383,12 +369,7 @@ namespace OnlineStore.AssemblyLine
LogUtil.info(equipBase.Name + "界面点击:" + SL_LocationCylinder_Up.Text);
equipBean.CylinderMove(null, IO_Type.SL_LocationCylinder_Down, IO_Type.SL_LocationCylinder_Up);
}
private void btnOutTopCylinder_Click(object sender, EventArgs e)
{
//LogUtil.info(equipBase.Name + "界面点击:" + SL_OutTopCylinder_Up.Text);
//equipBean.CylinderMove(null, IO_Type.SL_OutTopCylinder_Down, IO_Type.SL_OutTopCylinder_Up);
}
private void btnFeedSideWayCylinder_Click(object sender, EventArgs e)
{
if (equipBean.UpdownIsInP1())
......@@ -558,16 +539,7 @@ namespace OnlineStore.AssemblyLine
cameraStr = cameraStr.Substring(0, cameraStr.Length - 1);
string msg = CodeManager.ProcessCode(LastCodeList);
//if (LastCodeList.Count > 0)
//{
// foreach (string str in LastCodeList)
// {
// msg = str + "\r\n";
// }
//}
string msg = CodeManager.ProcessCode(LastCodeList);
LogUtil.info(equipBean.Name + "[" + cameraStr + "]扫码测试结果:\r\n" + msg);
MessageBox.Show(equipBean.Name + "[" + cameraStr + "]扫码测试结果:" + msg);
}
......@@ -594,19 +566,14 @@ namespace OnlineStore.AssemblyLine
private void btnOLine_Click(object sender, EventArgs e)
{
DoBtnClick(sender);
}
}
private void chbBoxSendShelf_CheckedChanged(object sender, EventArgs e)
{
IsInCheck = true;
LogUtil.info(equipBean.Name + "界面点击:出库完成送出料架=" + chbBoxSendShelf.Checked);
equipBean.OutEndSendShelfOut = chbBoxSendShelf.Checked;
IsInCheck = false;
}
}
private void btnOutStopDown_Click(object sender, EventArgs e)
{
DoBtnClick(sender);
......@@ -747,13 +714,7 @@ namespace OnlineStore.AssemblyLine
{
DoBtnClick(sender);
}
private void SL_ClampCylinder_Relax_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "界面点击:" + SL_ClampCylinder_Work.Text);
equipBean.CylinderMove(null, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
}
private void SL_TopCylinder_Down_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "界面点击:" + SL_TopCylinder_Down.Text);
......@@ -784,18 +745,7 @@ namespace OnlineStore.AssemblyLine
}
}
private void SL_ClampCylinder_Work_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "界面点击:" + SL_ClampCylinder_Relax.Text);
equipBean.CylinderMove(null, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
}
private void SL_OutTopCylinder_Down_Click(object sender, EventArgs e)
{
//LogUtil.info(equipBase.Name + "界面点击:" + SL_OutTopCylinder_Down.Text);
//equipBean.CylinderMove(null, IO_Type.SL_OutTopCylinder_Up, IO_Type.SL_OutTopCylinder_Down);
}
private void SL_TrayLocation_After_Click(object sender, EventArgs e)
{
if (!equipBean.TrayLCylinderCanAfter())
......@@ -920,6 +870,7 @@ namespace OnlineStore.AssemblyLine
btnTestStop.Enabled = false;
}
}
}
}
......
......@@ -58,15 +58,9 @@ namespace OnlineStore.AssemblyLine
this.Text = equipBean.Name;
txtP1.Text = equipBean.Config.UpDownAxisP1.ToString();
lblHyInfo.Text = equipBean.GetHYDesc();
LoadDOBtn(groupDo);
if(equipBean is HY_Coveryor)
{
btnOutStore.Visible = true;
}
else
{
btnOutStore.Visible = false;
}
LoadDOBtn(groupDo);
btnOutStore.Visible = false;
IsLoad = true;
}
......
......@@ -36,7 +36,6 @@
this.groupBox5 = new System.Windows.Forms.GroupBox();
this.btnLineStop = new System.Windows.Forms.Button();
this.btnDriveMotor_Run = new System.Windows.Forms.Button();
this.lblTrayNum = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.numTrayNum = new System.Windows.Forms.NumericUpDown();
......@@ -92,9 +91,9 @@
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.cmbWriteIO);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.groupBox1.Location = new System.Drawing.Point(573, 5);
this.groupBox1.Location = new System.Drawing.Point(492, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(475, 125);
this.groupBox1.Size = new System.Drawing.Size(382, 130);
this.groupBox1.TabIndex = 105;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "DO写入";
......@@ -223,9 +222,9 @@
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox4.Controls.Add(this.tableLayoutPanel2);
this.groupBox4.Location = new System.Drawing.Point(289, 5);
this.groupBox4.Location = new System.Drawing.Point(777, 135);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(276, 364);
this.groupBox4.Size = new System.Drawing.Size(270, 449);
this.groupBox4.TabIndex = 104;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "DO列表";
......@@ -243,7 +242,7 @@
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(265, 344);
this.tableLayoutPanel2.Size = new System.Drawing.Size(259, 429);
this.tableLayoutPanel2.TabIndex = 103;
//
// groupBox3
......@@ -251,9 +250,9 @@
this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.groupBox3.Controls.Add(this.tableLayoutPanel1);
this.groupBox3.Location = new System.Drawing.Point(6, 5);
this.groupBox3.Location = new System.Drawing.Point(494, 135);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(276, 364);
this.groupBox3.Size = new System.Drawing.Size(276, 449);
this.groupBox3.TabIndex = 103;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "DI列表";
......@@ -271,16 +270,16 @@
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 17F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(265, 344);
this.tableLayoutPanel1.Size = new System.Drawing.Size(265, 429);
this.tableLayoutPanel1.TabIndex = 102;
//
// groupBox5
//
this.groupBox5.Controls.Add(this.btnLineStop);
this.groupBox5.Controls.Add(this.btnDriveMotor_Run);
this.groupBox5.Location = new System.Drawing.Point(573, 137);
this.groupBox5.Location = new System.Drawing.Point(879, 3);
this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(475, 83);
this.groupBox5.Size = new System.Drawing.Size(168, 130);
this.groupBox5.TabIndex = 246;
this.groupBox5.TabStop = false;
this.groupBox5.Text = "IO操作测试";
......@@ -289,7 +288,7 @@
//
this.btnLineStop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnLineStop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnLineStop.Location = new System.Drawing.Point(171, 25);
this.btnLineStop.Location = new System.Drawing.Point(13, 68);
this.btnLineStop.Name = "btnLineStop";
this.btnLineStop.Size = new System.Drawing.Size(140, 37);
this.btnLineStop.TabIndex = 278;
......@@ -309,26 +308,12 @@
this.btnDriveMotor_Run.UseVisualStyleBackColor = false;
this.btnDriveMotor_Run.Click += new System.EventHandler(this.btnDriveMotor_Run_Click);
//
// lblTrayNum
//
this.lblTrayNum.AutoSize = true;
this.lblTrayNum.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblTrayNum.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblTrayNum.Location = new System.Drawing.Point(215, 546);
this.lblTrayNum.Name = "lblTrayNum";
this.lblTrayNum.Size = new System.Drawing.Size(68, 17);
this.lblTrayNum.TabIndex = 275;
this.lblTrayNum.Text = "托盘编码:";
this.lblTrayNum.TextAlign = System.Drawing.ContentAlignment.BottomRight;
this.lblTrayNum.Visible = false;
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.Controls.Add(this.groupBox2);
this.panel1.Controls.Add(this.lblMsg);
this.panel1.Controls.Add(this.lblMoveInfo);
this.panel1.Controls.Add(this.lblTrayNum);
this.panel1.Controls.Add(this.groupBox4);
this.panel1.Controls.Add(this.groupBox3);
this.panel1.Controls.Add(this.groupBox5);
......@@ -347,9 +332,9 @@
this.groupBox2.Controls.Add(this.btnClear);
this.groupBox2.Controls.Add(this.label6);
this.groupBox2.Controls.Add(this.lblSelTrayNum);
this.groupBox2.Location = new System.Drawing.Point(571, 227);
this.groupBox2.Location = new System.Drawing.Point(10, 3);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(475, 327);
this.groupBox2.Size = new System.Drawing.Size(475, 337);
this.groupBox2.TabIndex = 283;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "托盘信息编辑";
......@@ -612,21 +597,19 @@
//
this.lblMsg.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMsg.ForeColor = System.Drawing.Color.Red;
this.lblMsg.Location = new System.Drawing.Point(3, 375);
this.lblMsg.Location = new System.Drawing.Point(10, 387);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(562, 131);
this.lblMsg.Size = new System.Drawing.Size(475, 196);
this.lblMsg.TabIndex = 279;
this.lblMsg.Text = "CID";
//
// lblMoveInfo
//
this.lblMoveInfo.AutoSize = true;
this.lblMoveInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblMoveInfo.Location = new System.Drawing.Point(17, 546);
this.lblMoveInfo.Location = new System.Drawing.Point(16, 353);
this.lblMoveInfo.Name = "lblMoveInfo";
this.lblMoveInfo.Size = new System.Drawing.Size(29, 17);
this.lblMoveInfo.Size = new System.Drawing.Size(0, 17);
this.lblMoveInfo.TabIndex = 276;
this.lblMoveInfo.Text = "CID";
//
// FrmLineIO
//
......@@ -678,7 +661,6 @@
private System.Windows.Forms.Button btnDriveMotor_Run;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button btnCloseAll;
private System.Windows.Forms.Label lblTrayNum;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button btnLineStop;
private System.Windows.Forms.Label lblMoveInfo;
......
......@@ -35,16 +35,7 @@ namespace OnlineStore.AssemblyLine
int count = 18;
int roleindex = 0;
this.tableLayoutPanel1.RowStyles.Clear();
this.tableLayoutPanel1.RowCount = count;
//this.tableLayoutPanel3.RowStyles.Clear();
//if (LineManager.Config.DIList.Count > count)
//{
// this.tableLayoutPanel3.RowCount = LineManager.Config.DIList.Count - count;
//}
//else
//{
// this.tableLayoutPanel3.RowCount = 0;
//}
this.tableLayoutPanel1.RowCount = count;
foreach (ConfigIO ioValue in LineManager.Config.DIList.Values)
{
IOTextControl control = new IOTextControl(ioValue.ElectricalDefinition + "_" + ioValue.Explain, ioValue.ProName);
......@@ -64,9 +55,7 @@ namespace OnlineStore.AssemblyLine
}
count = 19;
tableLayoutPanel2.RowStyles.Clear();
this.tableLayoutPanel2.RowCount = count;
//this.tableLayoutPanel4.RowStyles.Clear();
//this.tableLayoutPanel4.RowCount = count;
this.tableLayoutPanel2.RowCount = count;
roleindex = 0;
foreach (ConfigIO ioValue in LineManager.Config.DOList.Values)
{
......@@ -111,30 +100,11 @@ namespace OnlineStore.AssemblyLine
lblMsg.Text = LineManager.Line.WarnMsg;
ReadIOList();
lblMoveInfo.Text = LineManager.Line.GetMoveStr();
//lblTrayNum.Text = "T3-C1托盘号:" + LineManager.Line.T3C1_TrayNum.ToString();
//if (cmbTray.SelectedIndex >= 0)
//{
int trayNum =(int) numTrayNum.Value + 101;
TrayInfo tray = TrayManager.GetTrayInfo(trayNum);
lblSelTrayNum.Text = tray.ToStr();
//}
//if (LineManager.Line.IOValue(IO_Type.HY_TopCylinder_Up).Equals(IO_VALUE.HIGH))
//{
// HY_TopCylinder_Up.BackColor = Color.LawnGreen;
//}
//else
//{
// HY_TopCylinder_Up.BackColor = Color.White ;
//}
//if (LineManager.Line.IOValue(IO_Type.HY_TopCylinder_Down).Equals(IO_VALUE.HIGH))
//{
// HY_TopCylinder_Down.BackColor = Color.LawnGreen;
//}
//else
//{
// HY_TopCylinder_Down.BackColor = Color.White;
//}
int trayNum = (int)numTrayNum.Value + 101;
TrayInfo tray = TrayManager.GetTrayInfo(trayNum);
lblSelTrayNum.Text = tray.ToStr();
}
}
......@@ -210,20 +180,12 @@ namespace OnlineStore.AssemblyLine
WriteDO(IO_VALUE.LOW);
}
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
// KNDAIManager.NeedShow = true;
//tabControl1.TabPages.RemoveAt(1);
{
LoadTray();
}
private void LoadTray()
{
//cmbTray.Items.Clear();
//for (int i = 101; i <= 150; i++)
//{
// cmbTray.Items.Add(i.ToString());
//}
{
cmbWidth.Items.Clear();
cmbHeight.Items.Clear();
......@@ -361,38 +323,13 @@ namespace OnlineStore.AssemblyLine
{
LogUtil.info("界面点击:" + btnDriveMotor_Run.Text);
LineManager.Line.WriteDrivetMotorRun(IO_VALUE.HIGH);
}
//private void HY_TopCylinder_Up_Click(object sender, EventArgs e)
//{
// LogUtil.info("界面点击:" + HY_TopCylinder_Up.Text);
// LineManager.Line.CylinderMove(null, IO_Type.HY_TopCylinder_Down, IO_Type.HY_TopCylinder_Up);
//}
}
private void btnCloseAll_Click(object sender, EventArgs e)
{
IOManager.instance.CloseAllDO();
}
//private void btnSw4Location_Click(object sender, EventArgs e)
//{
// LogUtil.info("界面点击:" + btnFrontStopDown.Text);
// BtnMove(btnFrontStopDown, "▉ T3-C1前阻挡下降", "▉ T3-C1前阻挡上升", IO_Type.HY_FrontStopDown);
//}
//private void btn34Top_Click(object sender, EventArgs e)
//{
// LogUtil.info("界面点击:" + btnStopDown.Text);
// BtnMove(btnStopDown, "▉ T3-C1阻挡下降", "▉ T3-C1阻挡上升", IO_Type.HY_StopDown);
//}
//private void HY_TopCylinder_Down_Click(object sender, EventArgs e)
//{
// LogUtil.info("界面点击:" + HY_TopCylinder_Down.Text);
// LineManager.Line.CylinderMove(null, IO_Type.HY_TopCylinder_Up, IO_Type.HY_TopCylinder_Down);
//}
private void btnLineStop_Click(object sender, EventArgs e)
{
LogUtil.info("界面点击:" + btnLineStop.Text);
......
......@@ -206,14 +206,24 @@ namespace OnlineStore.AssemblyLine
if (!lineBean.runStatus.Equals(LineRunStatus.Wait))
{
LogUtil.info("即将退出程序,停止" + lineBean.Name + "运行 ");
lineBean.StopRun();
lineBean.StopRun();
}
foreach (EquipBase equip in lineBean.AllEquipMap.Values)
{
if (equip.runStatus > LineRunStatus.Wait)
{
LogUtil.info("即将退出程序,停止" + equip.Name + "运行 ");
equip.StopRun();
equip.StopRun();
}
if(equip is MoveEquip)
{
MoveEquip moveEquip = (MoveEquip)equip;
moveEquip.ClampJwa.ClosePort();
}
if (equip is FeedingEquip)
{
FeedingEquip moveEquip = (FeedingEquip)equip;
moveEquip.ClampJwa.ClosePort();
}
}
IOManager.instance.CloseAllDO();
......
......@@ -35,6 +35,8 @@ namespace OnlineStore.AssemblyLine
}
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
clampJawControl1.clampJaw = equipBean.ClampJwa;
clampJawControl1.ShowData();
chbDebug.Checked = equipBean.IsDebug;
if (equipBean.UseAxis)
{
......@@ -48,6 +50,7 @@ namespace OnlineStore.AssemblyLine
}
cmbSizeList.Items.Clear();
cmbSizeList.Items.Add("0=默认位置");
foreach (int heigth in LineManager.GetTrayList())
{
cmbSizeList.Items.Add(heigth);
......@@ -67,6 +70,10 @@ namespace OnlineStore.AssemblyLine
btnInStore.Text = "出库盘移栽";
btnOutStore.Visible = false;
}
else
{
btnOutStore.Visible = true;
}
IsLoad = true;
}
......@@ -157,7 +164,7 @@ namespace OnlineStore.AssemblyLine
{
lblInoutInfo.Text = "";
}
lblMoveInfo.Text = equipBean.GetMoveStr() + "\r\n料仓类型:" + (equipBean.Config.IsBigTray.Equals(1) ? "大料盘" : "小料盘");
lblMoveInfo.Text = equipBean.GetMoveStr() +"料仓类型:" + (equipBean.Config.IsBigTray.Equals(1) ? "大料盘" : "小料盘");
string canOut = LineManager.Line.CanOutStore(equipBean.DeviceID) ? "可出库" : "不可出库";
lblStoreStatus.Text = KTK_Store.GetRunStr(equipBean.runStatus) + "(" + canOut + ")";
lblThisSta.Text = equipBean.WarnMsg;
......@@ -657,14 +664,10 @@ namespace OnlineStore.AssemblyLine
private void ClampCylinder_Check_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "界面点击:" + ClampCylinder_Relax.Text);
equipBase.CylinderMove(null, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Work);
}
private void ClampCylinder_Relax_Click(object sender, EventArgs e)
{
LogUtil.info(equipBase.Name + "界面点击:" + ClampCylinder_Work.Text);
equipBase.CylinderMove(null, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
{
}
......@@ -678,6 +681,8 @@ namespace OnlineStore.AssemblyLine
equipBean.MoveStop = chbMoveStop.Checked;
LogUtil.info(equipBean.Name + "用户切换是否暂停: " + equipBean.MoveStop);
}
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.12" targetFramework="net461" />
</packages>
\ No newline at end of file

namespace OnlineStore.AssemblyLine.useControl
{
partial class ClampJawControl
{
/// <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.groupClamp = new System.Windows.Forms.GroupBox();
this.btnClampWork = new System.Windows.Forms.Button();
this.btnClampRelax = new System.Windows.Forms.Button();
this.chbPosition = new System.Windows.Forms.CheckBox();
this.chbEmpty = new System.Windows.Forms.CheckBox();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.groupClamp.SuspendLayout();
this.SuspendLayout();
//
// groupClamp
//
this.groupClamp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupClamp.Controls.Add(this.linkLabel1);
this.groupClamp.Controls.Add(this.chbEmpty);
this.groupClamp.Controls.Add(this.chbPosition);
this.groupClamp.Controls.Add(this.btnClampWork);
this.groupClamp.Controls.Add(this.btnClampRelax);
this.groupClamp.Location = new System.Drawing.Point(7, 4);
this.groupClamp.Name = "groupClamp";
this.groupClamp.Size = new System.Drawing.Size(218, 158);
this.groupClamp.TabIndex = 283;
this.groupClamp.TabStop = false;
this.groupClamp.Text = "夹爪操作";
//
// btnClampWork
//
this.btnClampWork.BackColor = System.Drawing.Color.White;
this.btnClampWork.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnClampWork.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClampWork.Location = new System.Drawing.Point(29, 69);
this.btnClampWork.Name = "btnClampWork";
this.btnClampWork.Size = new System.Drawing.Size(140, 34);
this.btnClampWork.TabIndex = 282;
this.btnClampWork.Text = "夹料气缸夹紧";
this.btnClampWork.UseVisualStyleBackColor = false;
this.btnClampWork.Click += new System.EventHandler(this.btnClampWork_Click);
//
// btnClampRelax
//
this.btnClampRelax.BackColor = System.Drawing.Color.White;
this.btnClampRelax.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnClampRelax.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnClampRelax.Location = new System.Drawing.Point(29, 27);
this.btnClampRelax.Name = "btnClampRelax";
this.btnClampRelax.Size = new System.Drawing.Size(140, 34);
this.btnClampRelax.TabIndex = 281;
this.btnClampRelax.Text = "夹料气缸放松";
this.btnClampRelax.UseVisualStyleBackColor = false;
this.btnClampRelax.Click += new System.EventHandler(this.btnClampRelax_Click);
//
// chbPosition
//
this.chbPosition.AutoSize = true;
this.chbPosition.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbPosition.Location = new System.Drawing.Point(9, 120);
this.chbPosition.Name = "chbPosition";
this.chbPosition.Size = new System.Drawing.Size(84, 24);
this.chbPosition.TabIndex = 283;
this.chbPosition.Text = "运动到位";
this.chbPosition.UseVisualStyleBackColor = true;
//
// chbEmpty
//
this.chbEmpty.AutoSize = true;
this.chbEmpty.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.chbEmpty.Location = new System.Drawing.Point(102, 120);
this.chbEmpty.Name = "chbEmpty";
this.chbEmpty.Size = new System.Drawing.Size(56, 24);
this.chbEmpty.TabIndex = 284;
this.chbEmpty.Text = "空抓";
this.chbEmpty.UseVisualStyleBackColor = true;
//
// linkLabel1
//
this.linkLabel1.AutoSize = true;
this.linkLabel1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.linkLabel1.Location = new System.Drawing.Point(167, 121);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(37, 20);
this.linkLabel1.TabIndex = 285;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "查询";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// ClampJawControl
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Controls.Add(this.groupClamp);
this.Name = "ClampJawControl";
this.Size = new System.Drawing.Size(231, 167);
this.Load += new System.EventHandler(this.ClampJawControl_Load);
this.groupClamp.ResumeLayout(false);
this.groupClamp.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox groupClamp;
private System.Windows.Forms.Button btnClampWork;
private System.Windows.Forms.Button btnClampRelax;
private System.Windows.Forms.CheckBox chbEmpty;
private System.Windows.Forms.CheckBox chbPosition;
private System.Windows.Forms.LinkLabel linkLabel1;
}
}
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OnlineStore.AssemblyLine.useControl
{
public partial class ClampJawControl : UserControl
{
public ClampJawControl()
{
InitializeComponent();
}
public ClampJawBean clampJaw = null;
private string JName = "";
private void ClampJawControl_Load(object sender, EventArgs e)
{
ShowData();
}
public void ShowData()
{
if (clampJaw != null)
{
JName = clampJaw.config.Explain + "_" + clampJaw.config.PortName + "_" + clampJaw.config.AxisNo;
groupClamp.Text = JName;
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
chbPosition.Checked = clampJaw.IsReached();
chbEmpty.Checked =! clampJaw.HasReel();
}
private void btnClampRelax_Click(object sender, EventArgs e)
{
LogUtil.info(JName + "界面点击:" + btnClampRelax.Text);
clampJaw.Relax();
}
private void btnClampWork_Click(object sender, EventArgs e)
{
LogUtil.info(JName + "界面点击:" + btnClampRelax.Text);
clampJaw.Push();
}
}
}
<?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>
</root>
\ No newline at end of file
......@@ -33,9 +33,8 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\packages\log4net.2.0.12\lib\net40\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\dll\Newtonsoft.Json.dll</HintPath>
......@@ -44,6 +43,7 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
......@@ -72,6 +72,9 @@
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.12" targetFramework="net40" />
</packages>
\ No newline at end of file
using log4net;

using System;
using System.Collections.Generic;
using System.IO.Ports;
......
......@@ -52,11 +52,14 @@
<Reference Include="halcondotnet">
<HintPath>..\..\dll\halcondotnet.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
</Reference>
<Reference Include="Neotel.Rmaxis">
<HintPath>..\..\dll\Rmaxis\Neotel.Rmaxis.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
......@@ -71,8 +74,6 @@
<Compile Include="assemblyLine\FeedingEquip_OutStore.cs" />
<Compile Include="assemblyLine\HY\HYEquipBase.cs" />
<Compile Include="assemblyLine\HY\HY_C1_SLStation.cs" />
<Compile Include="assemblyLine\HY\HY_Coveryor.cs" />
<Compile Include="assemblyLine\HY\HY_Coveryor_Partial.cs" />
<Compile Include="assemblymanager\ALineManager.cs" />
<Compile Include="assemblyLine\FeedingEquip_InStore.cs" />
<Compile Include="assemblyLine\FeedingEquip.cs" />
......@@ -80,6 +81,7 @@
<Compile Include="assemblymanager\SServerManager.cs" />
<Compile Include="assemblymanager\TrayManager.cs" />
<Compile Include="baan\AxisBean.cs" />
<Compile Include="baan\ClampJawBean.cs" />
<Compile Include="baan\WaitUtil.cs" />
<Compile Include="deviceLibrary\AXIS\AxisManager.cs" />
<Compile Include="deviceLibrary\AXIS\HC\HCAxisManager.cs" />
......@@ -181,6 +183,10 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
......
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
......@@ -20,8 +20,9 @@ namespace OnlineStore.DeviceLibrary
public FeedingEquip_Config Config;
public bool OutEndSendShelfOut = false;
public AxisBean BatchAxis = null;
public bool HasOutLine = false;//是否有出料线体,T3和T4
public FeedingEquip(string cid, FeedingEquip_Config config)
public bool HasOutLine = false;//是否有出料线体,T3和T4
public ClampJawBean ClampJwa = null;
public FeedingEquip(string cid, FeedingEquip_Config config, ConfigClampJaw jawconfig)
{
this.DeviceID = config.Id;
baseConfig = config;
......@@ -38,6 +39,7 @@ namespace OnlineStore.DeviceLibrary
Init();
UseAxis = true;
ClampJwa = new ClampJawBean(jawconfig);
UpdownAxis = new AxisBean(config.UpDown_Axis, Name);
BatchAxis = new AxisBean(config.Batch_Axis, Name);
MoveInfo = new LineMoveInfo(DeviceID, "[" + Name.Trim() + "-Move]");
......@@ -128,9 +130,10 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW);
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.LOW);
//夹紧气缸放松
CylinderMove(null, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
//CylinderMove(null, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
ClampJwa.Relax();
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Entry_StopDown, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Buffer_StopDown, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_Out_StopDown, IO_VALUE.LOW));
......@@ -238,8 +241,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FR_15_TopDown);
LogInfo(MoveInfo.MoveType + ":" + MoveInfo.SLog + ": 定位气缸下降 ,夹紧气缸放松");
LocationCylinderDown(MoveInfo);
//CylinderMove(MoveInfo, IO_Type.SL_OutTopCylinder_Up, IO_Type.SL_OutTopCylinder_Down);
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
break;
case LineMoveStep.FR_15_TopDown:
RFIDData data = RFIDManager.GetShelfId(DeviceID);
......@@ -276,12 +279,12 @@ namespace OnlineStore.DeviceLibrary
}
break;
case LineMoveStep.FR_17_BatchAxisToP1:
MoveInfo.NextMoveStep(LineMoveStep.FR_18_ClampCheck);
DebugInfo(MoveInfo.MoveType + " : 等待夹爪料盘检测信号无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
break;
// MoveInfo.NextMoveStep(LineMoveStep.FR_18_ClampCheck);
// DebugInfo(MoveInfo.MoveType + " : 等待夹爪料盘检测信号无料");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
// break;
case LineMoveStep.FR_18_ClampCheck:
//case LineMoveStep.FR_18_ClampCheck:
LogInfo("重置完成!");
MoveEndS();
......
......@@ -371,7 +371,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_23_CylinderTighten);
InLog("料盘移栽" + MoveInfo.SLog + ":上料横移机构夹紧");
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
ClampJwa.Push(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_23_CylinderTighten))
{
......@@ -384,8 +385,8 @@ namespace OnlineStore.DeviceLibrary
if (UpdownIsInP1())
{
MoveInfo.NextMoveStep(LineMoveStep.FI_25_CheckTray);
InLog("料盘移栽" + MoveInfo.SLog + ":等待 SL_ClampCylinder_Check=HIGH,SL_AxisLocationCheck=LOW");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.HIGH));
InLog("料盘移栽" + MoveInfo.SLog + ":等待 SL_AxisLocationCheck=LOW");
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.HIGH));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_AxisLocationCheck, IO_VALUE.LOW));
}
else
......@@ -547,7 +548,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_34_CylinderRelax);
InLog("料盘移栽" + MoveInfo.SLog + ":上料气缸放松");
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.FI_34_CylinderRelax))
{
......@@ -567,22 +569,22 @@ namespace OnlineStore.DeviceLibrary
}
else
{
if (IOValue(IO_Type.SL_ClampCylinder_Check).Equals(IO_VALUE.LOW))
//if (IOValue(IO_Type.SL_ClampCylinder_Check).Equals(IO_VALUE.LOW))
{
FI_37_TrayMoveOk();
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.FI_36_ClampCheck);
InLog("料盘移栽" + MoveInfo.SLog + ":等待夹爪无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
}
//else
//{
// MoveInfo.NextMoveStep(LineMoveStep.FI_36_ClampCheck);
// InLog("料盘移栽" + MoveInfo.SLog + ":等待夹爪无料");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
//}
}
}
else if (MoveInfo.IsStep(LineMoveStep.FI_36_ClampCheck))
{
FI_37_TrayMoveOk();
}
//else if (MoveInfo.IsStep(LineMoveStep.FI_36_ClampCheck))
//{
// FI_37_TrayMoveOk();
//}
else if (MoveInfo.IsStep(LineMoveStep.FI_37_TrayMoveOk))
{
if (axisCheckTimer != null && axisCheckTimer.Enabled)
......@@ -883,9 +885,9 @@ namespace OnlineStore.DeviceLibrary
if (UpdownIsInP1())
{
MoveInfo.NextMoveStep(LineMoveStep.FI_17_CylinderGive);
InLog("料盘移栽" + MoveInfo.SLog + ":上料机构检测到料盘,横移机构到放料端,等待夹爪料盘检测=LOW");
InLog("料盘移栽" + MoveInfo.SLog + ":上料机构检测到料盘,横移机构到放料端, ");
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Take, IO_Type.SL_MoveCylinder_Give);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
}
else
{
......
......@@ -614,7 +614,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FO_22_CylinderTake);
OutLog(outType + MoveInfo.SLog + ":上料横移机构取料端,等待夹爪无料");
CylinderMove(MoveInfo, IO_Type.SL_MoveCylinder_Give, IO_Type.SL_MoveCylinder_Take);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
}
else
{
......@@ -649,7 +649,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FO_25_CylinderTighten);
OutLog(outType + MoveInfo.SLog + ":上料气缸夹紧");
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
ClampJwa.Push(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.FO_25_CylinderTighten))
{
......@@ -665,13 +666,13 @@ namespace OnlineStore.DeviceLibrary
{
if (UpdownIsInP1())
{
if (IOValue(IO_Type.SL_ClampCylinder_Check).Equals(IO_VALUE.LOW))
{
MoveInfo.NextMoveStep(LineMoveStep.FO_27_ClampCheck);
OutLog(outType + MoveInfo.SLog + ":检测夹爪料盘检测=HIGH");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.HIGH));
}
else
//if (IOValue(IO_Type.SL_ClampCylinder_Check).Equals(IO_VALUE.LOW))
//{
// MoveInfo.NextMoveStep(LineMoveStep.FO_27_ClampCheck);
// OutLog(outType + MoveInfo.SLog + ":检测夹爪料盘检测=HIGH");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.HIGH));
//}
//else
{
FO_28_CylinderGive(outType);
}
......@@ -699,7 +700,8 @@ namespace OnlineStore.DeviceLibrary
OutStoreCount++;
MoveInfo.NextMoveStep(LineMoveStep.FO_30_CylinderSlack);
OutLog(outType + MoveInfo.SLog + ":出料横移机构放松,累积出库【" + OutStoreCount + "】盘【" + OutStoreHeight + "】mm");
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Work, IO_Type.SL_ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.FO_30_CylinderSlack))
......@@ -719,12 +721,12 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(LineMoveStep.FO_31_UpdownAxisToP1))
{
MoveInfo.NextMoveStep(LineMoveStep.FO_32_ClampCheck);
OutLog(outType + MoveInfo.SLog + ":检测夹爪料盘检测=LOW");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
}
else if (MoveInfo.IsStep(LineMoveStep.FO_32_ClampCheck))
{
// MoveInfo.NextMoveStep(LineMoveStep.FO_32_ClampCheck);
// OutLog(outType + MoveInfo.SLog + ":检测夹爪料盘检测=LOW");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SL_ClampCylinder_Check, IO_VALUE.LOW));
//}
//else if (MoveInfo.IsStep(LineMoveStep.FO_32_ClampCheck))
//{
if (UpdownIsInP1())
{
MoveInfo.NextMoveStep(LineMoveStep.FO_33_CylinderTake);
......@@ -810,7 +812,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FO_25_CylinderTighten);
OutLog(outType + MoveInfo.SLog + ":上料气缸夹紧");
CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
//CylinderMove(MoveInfo, IO_Type.SL_ClampCylinder_Relax, IO_Type.SL_ClampCylinder_Work);
ClampJwa.Push(MoveInfo);
}
private void SendOutShelfOut(string msg = "")
......
......@@ -23,11 +23,11 @@ namespace OnlineStore.DeviceLibrary
{
int hynum = (config.Id % 100);
List<int> jNumList = new List<int>() { 5 };
if (jNumList.Contains(hynum))
{
return new HY_Coveryor(cid, config);
}
else
//if (jNumList.Contains(hynum))
//{
// return new HY_Coveryor(cid, config);
//}
//else
{
return new HY_C1_SLStation(cid, config);
}
......
......@@ -65,7 +65,8 @@ namespace OnlineStore.DeviceLibrary
foreach (FeedingEquip_Config config in feedMap.Values)
{
FeedingEquip equip = new FeedingEquip(lineConfig.CID, config);
ConfigClampJaw jawconfig = Line_Config.ClampJawMap[config.Id];
FeedingEquip equip = new FeedingEquip(lineConfig.CID, config,jawconfig);
//增加AGV小车客户端
AgvClient.NodeList.Add(config.AgvInName);
AgvClient.NodeList.Add(config.AgvOutName);
......@@ -76,7 +77,8 @@ namespace OnlineStore.DeviceLibrary
}
foreach (MoveEquip_Config config in configList.Values)
{
MoveEquip equip = new MoveEquip(lineConfig.CID, config);
ConfigClampJaw jawconfig = Line_Config.ClampJawMap[config.Id];
MoveEquip equip = new MoveEquip(lineConfig.CID, config, jawconfig);
AddDeviceName(ioList, config.IOIPList);
MoveEquipMap.Add(config.Id, equip);
AllEquipMap.Add(config.Id, equip);
......
......@@ -13,15 +13,16 @@ namespace OnlineStore.DeviceLibrary
public partial class MoveEquip : EquipBase
{
public MoveEquip_Config Config;
public ClampJawBean ClampJwa = null;
public bool OnlyProOutTray = false;
public MoveEquip(string cid, MoveEquip_Config config)
public MoveEquip(string cid, MoveEquip_Config config,ConfigClampJaw jawconfig)
{
this.DeviceID = config.Id;
this.Config = config;
baseConfig = config;
IsDebug = config.IsDebug.Equals(1);
Name = (" " + "D" + DeviceID + "-进仓" + DeviceID.ToString().PadLeft(1, '0') + " ").ToUpper();
ClampJwa = new ClampJawBean(jawconfig);
Name = (" " + "D" + DeviceID + "-进仓" + DeviceID.ToString().PadLeft(1, '0') + " ").ToUpper();
if (DeviceID.Equals(7))
{
OnlyProOutTray = true;
......@@ -129,15 +130,16 @@ namespace OnlineStore.DeviceLibrary
DebugInfo(MoveInfo.MoveType + " : 上升气缸到位,顶升气缸下降,前后气缸后退,夹紧气缸放松");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Up, IO_Type.TopCylinder_Down);
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
break;
case LineMoveStep.MH_03_OtherBack:
MoveInfo.NextMoveStep(LineMoveStep.MH_04_ClampCheck);
DebugInfo(MoveInfo.MoveType + " : 等待夹爪气缸料盘检测无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
break;
case LineMoveStep.MH_04_ClampCheck:
// MoveInfo.NextMoveStep(LineMoveStep.MH_04_ClampCheck);
// DebugInfo(MoveInfo.MoveType + " : 等待夹爪气缸料盘检测无料");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
// break;
//case LineMoveStep.MH_04_ClampCheck:
LogInfo(MoveInfo.MoveType + " 完成!");
runStatus = LineRunStatus.Runing;
......
......@@ -66,7 +66,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
OutLog("出库 " + MoveInfo.MoveStep + ": 前后气缸前进,等待夹爪料盘检测信号=LOW");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
}
else
{
......@@ -104,8 +104,9 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.MO_54_CylinderOpen);
OutLog("出库 " + MoveInfo.SLog + ": 夹料气缸夹紧,更新料盘位置【" + MoveInfo.MoveParam.WareCode + "】【MOVING】【" + DeviceID + "】");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Work);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Work);
ClampJwa.Push(MoveInfo );
//更新料盘位置
SServerManager.UpdateTrayLoc(Name, MoveInfo.MoveParam.WareCode, LocStatus.MOVING, DeviceID.ToString());
......@@ -114,8 +115,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.MO_55_CylinderUp);
OutLog("出库 " + MoveInfo.SLog + ": 上下气缸上升");
UpdownUpMove();
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
UpdownUpMove();
}
else if (MoveInfo.IsStep(LineMoveStep.MO_56_ResetClamp))
......@@ -126,26 +126,27 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(LineMoveStep.MO_55_CylinderUp))
{
MoveInfo.NextMoveStep(LineMoveStep.MO_57_ClampCheck);
if (ClampCount.Equals(0))
{
OutLog("出库 " + MoveInfo.SLog + ": 检测夹爪料盘检测=HIGH,超时1000");
MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
}
else
{
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
OutLog("出库 " + MoveInfo.SLog + ": 检测夹爪料盘检测=HIGH");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
}
}
else if (MoveInfo.IsStep(LineMoveStep.MO_57_ClampCheck))
{
// MoveInfo.NextMoveStep(LineMoveStep.MO_57_ClampCheck);
// if (ClampCount.Equals(0))
// {
// OutLog("出库 " + MoveInfo.SLog + ": 检测夹爪料盘检测=HIGH,超时1000");
// MoveInfo.OneWaitCanEndStep = true;
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
// }
// else
// {
// MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
// OutLog("出库 " + MoveInfo.SLog + ": 检测夹爪料盘检测=HIGH");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
// }
//}
//else if (MoveInfo.IsStep(LineMoveStep.MO_57_ClampCheck))
//{
if (UpdownIsUp())
{
if (IOValue(IO_Type.ClampCylinder_Check).Equals(IO_VALUE.HIGH))
//if (IOValue(IO_Type.ClampCylinder_Check).Equals(IO_VALUE.HIGH))
if(ClampJwa.HasReel())
{
if (IsBigStore())
{
......@@ -165,7 +166,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.MO_56_ResetClamp);
ClampCount = 1;
OutLog("出库 " + MoveInfo.SLog + ": 第一次未抓到料,重新抓一次,夹爪先放松", 1);
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
}
}
else
......@@ -223,7 +225,8 @@ namespace OnlineStore.DeviceLibrary
LogInfo("出库 " + MoveInfo.SLog + ": 夹料气缸放松,更新托盘信息 " + tray.ToStr() + "");
//出库全部完成
MoveInfo.NextMoveStep(LineMoveStep.MO_61_CylinderRelax);
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.MO_61_CylinderRelax))
{
......@@ -286,7 +289,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.MI_02_ToLineUp);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
}
else
{
......@@ -325,7 +328,7 @@ namespace OnlineStore.DeviceLibrary
InLog("入库 " + MoveInfo.SLog + ": 前后气缸后退,等待夹爪检测=LOW");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.LOW));
}
else if (MoveInfo.IsStep(LineMoveStep.MI_02_ToLineUp))
{
......@@ -346,7 +349,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.MI_05_CylinderOpen);
InLog("入库 " + MoveInfo.SLog + ": 夹料气缸夹紧");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Work);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Relax, IO_Type.ClampCylinder_Work);
ClampJwa.Push(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.MI_05_CylinderOpen))
{
......@@ -357,12 +361,12 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(LineMoveStep.MI_06_CylinderUp))
{
MoveInfo.NextMoveStep(LineMoveStep.MI_07_ClampCheck);
InLog("入库 " + MoveInfo.SLog + ": 等待夹爪料盘检测信号=HIGH");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
}
else if (MoveInfo.IsStep(LineMoveStep.MI_07_ClampCheck))
{
// MoveInfo.NextMoveStep(LineMoveStep.MI_07_ClampCheck);
// InLog("入库 " + MoveInfo.SLog + ": 等待夹爪料盘检测信号=HIGH");
// MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.ClampCylinder_Check, IO_VALUE.HIGH));
//}
//else if (MoveInfo.IsStep(LineMoveStep.MI_07_ClampCheck))
//{
int num = MoveInfo.MoveParam.TrayNumber;
MoveInfo.NextMoveStep(LineMoveStep.MI_10_WaitBox);
LogInfo("入库【" + posId + "】 " + MoveInfo.SLog + ": 物品已移走,更新托盘【" + num + "】为空盘,删除入库任务");
......@@ -408,7 +412,8 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.MI_12_CylinderRelax);
InLog("入库 " + MoveInfo.SLog + ",夹料气缸放松");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
//CylinderMove(MoveInfo, IO_Type.ClampCylinder_Work, IO_Type.ClampCylinder_Relax);
ClampJwa.Relax(MoveInfo);
}
else if (MoveInfo.IsStep(LineMoveStep.MI_12_CylinderRelax))
{
......
......@@ -125,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
string feedingEquipConfig = ConfigAppSettings.GetValue(Setting_Init.ConfigPath_FeedingEquip);
for (int i = 1; i <= feedingEquipCount; i++)
{
int subType = 100 + i;
int subType = 100 + i;
string config = appPath + feedingEquipConfig.Replace(".csv", "_" + i + ".csv");
FeedingEquip_Config moveConfig = CSVConfigReader.LoadFeedingConfig(subType, DeviceType.FeedingEquip, config);
moveConfig.ConfigSpeed(Config);
......
using Neotel;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class ClampJawBean
{
public ConfigClampJaw config = null;
public Rmaxis rmaxis = null;
public ClampJawBean (ConfigClampJaw config)
{
this.config = config;
OpenPort();
}
public bool OpenPort()
{
if (config == null)
{
return false;
}
if (rmaxis == null)
{
rmaxis = new Rmaxis();
}
if (!rmaxis.IsPortOpen)
{
bool result = rmaxis.OpenPort(config.PortName, config.AxisNo);
if (!result)
{
LogUtil.error(config.DisplayStr + " OpenPort 失败:" );
}
}
return rmaxis.IsPortOpen;
}
public void ClosePort()
{
if (rmaxis != null)
{
rmaxis.ClosePort();
}
}
public void Push(LineMoveInfo moveInfo = null, bool checkHasReel = true)
{
if (rmaxis != null && rmaxis.IsPortOpen)
{
rmaxis.Push(config.Force, config.Distance, config.Velocity);
}
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitClampReached((int)config.Distance));
if (checkHasReel)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitClampHasReel());
}
}
}
public bool IsReached()
{
if (rmaxis != null && rmaxis.IsPortOpen)
{
return rmaxis.IsReached;
}
return false;
}
public bool HasReel()
{
if (rmaxis != null && rmaxis.IsPortOpen)
{
return !rmaxis.IsPushEmpty;
}
return false;
}
public void Relax(LineMoveInfo moveInfo = null)
{
if (rmaxis != null && rmaxis.IsPortOpen)
{
rmaxis.GoHome( );
}
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitClampReached(0));
}
}
}
}
......@@ -391,7 +391,7 @@ namespace OnlineStore.DeviceLibrary
return false;
}
public void CylinderMove(LineMoveInfo moveInfo, string IoLowType, string IoHighType, bool isCheckMove = false)
{
{
try
{
if (baseConfig.DType.Equals(DeviceType.HYEquip))
......@@ -411,57 +411,14 @@ namespace OnlineStore.DeviceLibrary
}
if (moveInfo != null)
{
if (IoHighType.Equals(IO_Type.ClampCylinder_Work) || IoHighType.Equals(IO_Type.ClampCylinder_Relax) ||
IoHighType.Equals(IO_Type.UpDownCylinder_Down) || IoHighType.Equals(IO_Type.UpDownCylinder_Up) ||
if (IoHighType.Equals(IO_Type.UpDownCylinder_Down) || IoHighType.Equals(IO_Type.UpDownCylinder_Up) ||
IoHighType.Equals(IO_Type.BeforeAfterCylinder_After) || IoHighType.Equals(IO_Type.BeforeAfterCylinder_Before)
)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
}
//如果是进仓门口 夹紧
if (baseConfig.DType.Equals(DeviceType.FeedingEquip) && (IoHighType.Equals(IO_Type.SL_ClampCylinder_Work)))
{
//夹爪夹紧
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
}
else if (baseConfig.DType.Equals(DeviceType.FeedingEquip) && (IoHighType.Equals(IO_Type.SL_ClampCylinder_Relax)))
{
//夹爪放松
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
}
else if (baseConfig.DType.Equals(DeviceType.MoveEquip) && (IoHighType.Equals(IO_Type.ClampCylinder_Relax)))
{
//夹爪放松
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
}
else if (baseConfig.DType.Equals(DeviceType.MoveEquip) && (IoHighType.Equals(IO_Type.ClampCylinder_Work)))
{
//夹爪夹紧
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
}
else if (baseConfig.DType.Equals(DeviceType.HYEquip) && (IoHighType.Equals(IO_Type.HY_ClampCylinder_Relax)))
{
//夹爪放松
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
}
else if (baseConfig.DType.Equals(DeviceType.HYEquip) && (IoHighType.Equals(IO_Type.HY_ClampCylinder_Work)))
{
//夹爪夹紧
moveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
}
else
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
}
}
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoLowType, IO_VALUE.LOW));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IoHighType, IO_VALUE.HIGH));
}
if (isCheckMove)
{
......@@ -473,11 +430,12 @@ namespace OnlineStore.DeviceLibrary
IOMove(IoLowType, IO_VALUE.LOW);
IOMove(IoHighType, IO_VALUE.HIGH);
}
}catch(Exception ex)
}
catch (Exception ex)
{
LogUtil.error(Name + "CylinderMove ["+moveInfo.Name+"] ["+IoLowType+"] ["+IoHighType+"] ["+isCheckMove+"] 出错:"+ex.ToString());
LogUtil.error(Name + "CylinderMove [" + moveInfo.Name + "] [" + IoLowType + "] [" + IoHighType + "] [" + isCheckMove + "] 出错:" + ex.ToString());
}
}
public void CheckAndMove(string IoType, IO_VALUE value)
{
......
......@@ -221,40 +221,24 @@ namespace OnlineStore.DeviceLibrary
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitStell(byte slvAddr, int targetPosition, int speed)
public static WaitResultInfo WaitClampReached(int position)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount =10;
wait.WaitType = WaitEnum.W004_StellMove;
wait.SlvAddr = slvAddr;
wait.IsHomeMove = false;
wait.TargetPosition = targetPosition;
wait.TargetSpeed = speed;
wait.CanWhileMoveCount = 0;
wait.WaitType = WaitEnum.W004_ClampReached;
wait.TargetPosition = position;
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitStellHome(byte slvAddr, int targetPosition, int speed)
public static WaitResultInfo WaitClampHasReel()
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 10;
wait.WaitType = WaitEnum.W004_StellMove;
wait.SlvAddr = slvAddr;
wait.IsHomeMove = true;
wait.TargetPosition = 0;
wait.TargetSpeed = speed;
wait.CanWhileMoveCount = 0;
wait.WaitType = WaitEnum.W005_WaitHasReel;
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitShuoKe(int slvAddr, int targetPosition, bool isHome)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 0;
wait.WaitType = WaitEnum.W005_ShuoKe;
wait.SlvAddr =(byte) slvAddr;
wait.TargetPosition = targetPosition;
wait.IsHomeMove = isHome;
return wait;
}
public static WaitResultInfo WaitTime(int MScends)
{
WaitResultInfo wait = new WaitResultInfo();
......@@ -264,26 +248,7 @@ namespace OnlineStore.DeviceLibrary
wait.IsEnd = false;
return wait;
}
//public static WaitResultInfo WaitAxisOrg(ConfigMoveAxis axis,IO_VALUE value )
//{
// WaitResultInfo wait = new WaitResultInfo();
// wait.CanWhileMoveCount = 0;
// wait.WaitType = WaitEnum.W006_AxisOrg;
// wait.AxisInfo = axis;
// wait.IsHomeMove = true;
// wait.IoValue = value;
// wait.IsEnd = false;
// return wait;
//}
public static WaitResultInfo WaitHeight(int height)
{
WaitResultInfo wait = new WaitResultInfo();
wait.WaitType = WaitEnum.W007_ReelHeight;
wait.HeightValue = height;
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitCanInstore()
{
WaitResultInfo wait = new WaitResultInfo();
......@@ -337,13 +302,13 @@ namespace OnlineStore.DeviceLibrary
{
return "时间【" + TimeMSeconds + "】毫秒";
}
else if (WaitType.Equals(WaitEnum.W004_StellMove))
else if (WaitType.Equals(WaitEnum.W004_ClampReached))
{
return "电钢目标位置【" + TargetPosition + "】 ";
return "夹爪到位【" + TargetPosition + "】 ";
}
else if (WaitType.Equals(WaitEnum.W005_ShuoKe))
else if (WaitType.Equals(WaitEnum.W005_WaitHasReel))
{
return "硕科电机目标位置【" + TargetPosition + "】 ";
return "夹爪有料 ";
}
else if (WaitType.Equals(WaitEnum.W006_AxisOrg))
{
......@@ -458,13 +423,13 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
internal static int W003_Time = 3;
/// <summary>
/// 电钢运动
/// j夹爪到位
/// </summary>
internal static int W004_StellMove = 4;
internal static int W004_ClampReached = 4;
/// <summary>
/// 硕科电机
/// 夹爪有料
/// </summary>
internal static int W005_ShuoKe = 5;
internal static int W005_WaitHasReel = 5;
/// <summary>
/// 轴原点信号
/// </summary>
......
......@@ -615,10 +615,10 @@ namespace OnlineStore.DeviceLibrary
/// 料盘移栽: 升降伺服到P1点
/// </summary>
FI_35_AxisToP1,
/// <summary>
/// 料盘移栽:检测夹爪无料
/// </summary>
FI_36_ClampCheck,
///// <summary>
///// 料盘移栽:检测夹爪无料
///// </summary>
//FI_36_ClampCheck,
/// <summary>
/// 料盘移栽: 放托盘离开
/// </summary>
......@@ -789,7 +789,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 紧急出料移栽:检测夹爪料盘检测信号无料
/// </summary>
FO_32_ClampCheck,
//FO_32_ClampCheck,
/// <summary>
/// 紧急出料移栽:上料横移机构到取料端
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.12" targetFramework="net461" />
</packages>
\ No newline at end of file
......@@ -31,12 +31,14 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net">
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
......@@ -99,5 +101,8 @@
<DependentUpon>FrmHuiChuanTest.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.12" targetFramework="net461" />
</packages>
\ No newline at end of file
......@@ -33,12 +33,13 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\packages\log4net.2.0.12\lib\net40\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
......@@ -67,6 +68,9 @@
<Name>Common</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.12" targetFramework="net40" />
</packages>
\ No newline at end of file
......@@ -69,6 +69,10 @@ namespace OnlineStore.LoadCSVLibrary
{
type = typeof(ConfigMoveAxis);
}
else if (typeValue.Equals(ConfigItemType.CLAW))
{
type = typeof(ConfigClampJaw);
}
Dictionary<string, string> proTitleMap = getProAttributeMap(type);
ConfigBase bllIns = (ConfigBase)type.Assembly.CreateInstance(type.FullName);
......
......@@ -59,14 +59,7 @@ namespace OnlineStore.LoadCSVLibrary
}
public class ConfigMoveAxis : ConfigBase
{
///// <summary>
///// 伺服ON的Do信号
///// </summary>
//public string ServerOnDO = "";
///// <summary>
///// 伺服刹车信号
///// </summary>
//public string BreakOnDO = "";
[CSVAttribute("设备名称")]
public string DeviceName { get; set; }
......@@ -152,6 +145,74 @@ namespace OnlineStore.LoadCSVLibrary
}
}
public class ConfigClampJaw : ConfigBase
{
[CSVAttribute("设备名称")]
public string PortName { get; set; }
[CSVAttribute("目标速度")]
public float Velocity { get; set; }
[CSVAttribute("加速度")]
public float AddSpeed { get; set; }
[CSVAttribute("减速度")]
public float DelSpeed { get; set; }
[CSVAttribute("出力")]
public float Force { get; set; }
[CSVAttribute("距离")]
public float Distance { get; set; }
public string GetNameStr()
{
return PortName + "_" + AxisNo;
}
public bool IsSameAxis(string portName, ushort slv)
{
if (PortName.Equals(portName) && slv.Equals(AxisNo))
{
return true;
}
return false;
}
public string DisplayStr
{
get
{
return Explain + "(" + ProName + ")";
}
set
{
}
}
private ushort axisNo=999;
public ushort AxisNo
{
get
{
if (axisNo.Equals(999)){
if (ProValue.Equals("") || ProValue.Equals("-1"))
{
axisNo = 0;
}
axisNo = (ushort)Convert.ToInt32(ProValue);
}
return axisNo;
}
}
public override void CheckField()
{
if (String.IsNullOrEmpty(ProType) || String.IsNullOrEmpty(ProName) || String.IsNullOrEmpty(PortName) || String.IsNullOrEmpty(ProValue))
{
throw new CVSFieldNotMatchingExection(ConfigStr + "【类型】【名称】【属性值】【设备名称】必须配置值!");
}
}
}
/// <summary>
/// io配置
......@@ -243,6 +304,8 @@ namespace OnlineStore.LoadCSVLibrary
public static string DO = "DO";
public static string AXIS = "AXIS";
public static string PRO = "PRO";
public static string CLAW = "CLAW";
}
}
......@@ -98,7 +98,7 @@ namespace OnlineStore.LoadCSVLibrary
List<string> checkProList = new List<string>(proMap.Keys);//用来检测attribute属性都应该要配置值
foreach (ConfigBase con in configList)
{
if (con.ProType == ConfigItemType.AXIS || con.ProType == ConfigItemType.PRO)
if (con.ProType == ConfigItemType.AXIS || con.ProType == ConfigItemType.PRO||con.ProType==ConfigItemType.CLAW)
{
if (proMap.ContainsKey(con.ProName))
{
......@@ -112,7 +112,16 @@ namespace OnlineStore.LoadCSVLibrary
//如果属性存在
prop.SetValue(this, Convert.ChangeType(con, prop.PropertyType), null);//赋值****在这里需要考虑类型问题
ConfigMoveAxis axis = (ConfigMoveAxis)con;
}
else if (con.ProType == ConfigItemType.CLAW)
{
//如果属性存在
prop.SetValue(this, Convert.ChangeType(con, prop.PropertyType), null);//赋值****在这里需要考虑类型问题
ConfigClampJaw jaw = (ConfigClampJaw)con;
if (!Line_Config.ClampJawMap.ContainsKey(jaw.SubType))
{
Line_Config.ClampJawMap.Add(jaw.SubType, jaw);
}
}
else if (con.ProType == ConfigItemType.PRO)
{
......
......@@ -323,15 +323,15 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
public static string SL_TrayLocation_After = "SL_TrayLocation_After";
public static string ClampCylinder_Work = "ClampCylinder_Work";
public static string ClampCylinder_Check = "ClampCylinder_Check";
public static string ClampCylinder_Relax = "ClampCylinder_Relax";
public static string HY_ClampCylinder_Relax = "HY_ClampCylinder_Relax";
public static string HY_ClampCylinder_Work = "HY_ClampCylinder_Work";
public static string HY_ClampCylinder_Check = "HY_ClampCylinder_Check";
public static string SL_ClampCylinder_Relax = "SL_ClampCylinder_Relax";
public static string SL_ClampCylinder_Work = "SL_ClampCylinder_Work";
public static string SL_ClampCylinder_Check = "SL_ClampCylinder_Check";
//public static string ClampCylinder_Work = "ClampCylinder_Work";
//public static string ClampCylinder_Check = "ClampCylinder_Check";
//public static string ClampCylinder_Relax = "ClampCylinder_Relax";
//public static string HY_ClampCylinder_Relax = "HY_ClampCylinder_Relax";
//public static string HY_ClampCylinder_Work = "HY_ClampCylinder_Work";
//public static string HY_ClampCylinder_Check = "HY_ClampCylinder_Check";
//public static string SL_ClampCylinder_Relax = "SL_ClampCylinder_Relax";
//public static string SL_ClampCylinder_Work = "SL_ClampCylinder_Work";
//public static string SL_ClampCylinder_Check = "SL_ClampCylinder_Check";
public static string HY_TrayCheck1 = "HY_TrayCheck1";
public static string HY_TrayCheck2 = "HY_TrayCheck2";
......
......@@ -21,7 +21,50 @@ namespace OnlineStore.LoadCSVLibrary
public Line_Config(int id, string cid, string type, string filepath)
: base(id, cid, LoadCSVLibrary.DeviceType.Line, filepath)
{
}
}
public static Dictionary<int, ConfigClampJaw> ClampJawMap = new Dictionary<int, ConfigClampJaw>();
/// <summary>
/// CLAW,1,D1移栽夹爪,CLAW_D1,0,COM1,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D1")]
public ConfigClampJaw CLAW_D1 { get; set; }
/// <summary>
/// CLAW,2,D2移栽夹爪,CLAW_D2,1,COM1,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D2")]
public ConfigClampJaw CLAW_D2 { get; set; }
/// <summary>
/// CLAW,3,D3移栽夹爪,CLAW_D3,2,COM1,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D3")]
public ConfigClampJaw CLAW_D3 { get; set; }
/// <summary>
/// CLAW,4,D4移栽夹爪,CLAW_D4,3,COM1,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D4")]
public ConfigClampJaw CLAW_D4 { get; set; }
/// <summary>
/// CLAW,5,D5移栽夹爪,CLAW_D5,0,COM2,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D5")]
public ConfigClampJaw CLAW_D5 { get; set; }
/// <summary>
/// CLAW,6,D6移栽夹爪,CLAW_D6,1,COM2,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D6")]
public ConfigClampJaw CLAW_D6 { get; set; }
/// <summary>
/// CLAW,7,D7移栽夹爪,CLAW_D7,2,COM2,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_D7")]
public ConfigClampJaw CLAW_D7 { get; set; }
/// <summary>
/// CLAW,101,D8移栽夹爪,CLAW_T1,3,COM2,,500,0,0,30,7
/// </summary>
[ConfigProAttribute("CLAW_T1")]
public ConfigClampJaw CLAW_T1 { get; set; }
/// <summary>
/// 气压检测信号关闭需要持续的时间
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!