Commit 45f62419 LN

增加伺服bean

1 个父辈 aff17178
......@@ -41,7 +41,7 @@ namespace OnlineStore.AssemblyLine
{
portName = equipBean.Config.UpDown_Axis.DeviceName;
SlvAddr = equipBean.Config.UpDown_Axis.GetAxisValue();
axisMoveControl1.LoadData(equipBean, new ConfigMoveAxis[] { equipBean.Config.UpDown_Axis });
axisMoveControl1.LoadData(equipBean, new AxisBean[] { equipBean.UpdownAxis });
btnUpDownUp.Visible = false;
}
else
......@@ -392,26 +392,24 @@ namespace OnlineStore.AssemblyLine
private void btnMoveto_Click(object sender, EventArgs e)
{
int position = FormUtil.GetIntValue(txtP2);
if (position != -1)
{
int position = FormUtil.GetIntValue(txtP2);
int speed = equipBean.Config.UpdownAxis_DownSpeed;
LogUtil.info("点击【移栽位置】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
}
equipBean.UpdownAxis.AbsMove(position, speed);
}
private void btnAxisOn_Click(object sender, EventArgs e)
{
this.Enabled = false;
equipBean.RunAxis(false,equipBean.Config.UpDown_Axis);
equipBean.RunAxis(false,equipBase.UpdownAxis);
this.Enabled = true;
LogUtil.info("伺服运转ON完成");
}
private void btnAxisOff_Click(object sender, EventArgs e)
{
equipBean.CloseAxis(equipBean.Config.UpDown_Axis);
equipBean.CloseAxis(equipBase.UpdownAxis);
LogUtil.info("伺服运转OFF完成");
}
......@@ -430,12 +428,11 @@ namespace OnlineStore.AssemblyLine
private void button3_Click(object sender, EventArgs e)
{
int position = FormUtil.GetIntValue(txtP1);
if (position != -1)
{
int speed =equipBean.Config.UpdownAxis_P1Speed;
LogUtil.info("点击【P1点测试】, 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
}
equipBean.UpdownAxis.AbsMove(position, speed);
}
private void btnSave_Click(object sender, EventArgs e)
......@@ -456,12 +453,11 @@ namespace OnlineStore.AssemblyLine
private void btnBoxP_Click(object sender, EventArgs e)
{
int position = FormUtil.GetIntValue(txtP3);
if (position != -1)
{
int speed = equipBean.Config.UpdownAxis_DownSpeed;
LogUtil.info("点击【料仓门口下降位置】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
}
LogUtil.info("点击【料仓门口下降位置】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
equipBean.UpdownAxis.AbsMove(position, speed);
}
}
......
......@@ -180,7 +180,7 @@ namespace OnlineStore.AssemblyLine
{
if (equipBean.UseAxis)
{
axisMoveControl1.LoadData(equipBean, new ConfigMoveAxis[] { equipBean.Config.UpDown_Axis });
axisMoveControl1.LoadData(equipBean, new AxisBean[] { equipBean.UpdownAxis });
cmbSizeList.Items.Clear();
cmbSizeList.Items.Add("0=默认位置");
for (int i = 8; i <= 48; i = i + 4)
......@@ -372,12 +372,10 @@ namespace OnlineStore.AssemblyLine
int position = FormUtil.GetIntValue(txtP3);
if (position != -1)
{
string portName = equipBean.Config.UpDown_Axis.DeviceName;
int SlvAddr = equipBean.Config.UpDown_Axis.GetAxisValue();
{
int speed = equipBean.Config.UpdownAxis_DownSpeed;
LogUtil.info("点击【出料皮带线位置P3】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
LogUtil.info("点击【出料皮带线位置P3】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
equipBase.UpdownAxis.AbsMove(position, speed);
}
}
......@@ -385,12 +383,10 @@ namespace OnlineStore.AssemblyLine
{
int position = FormUtil.GetIntValue(txtP2);
if (position != -1)
{
string portName = equipBean.Config.UpDown_Axis.DeviceName;
int SlvAddr = equipBean.Config.UpDown_Axis.GetAxisValue();
{
int speed = equipBean.Config.UpdownAxis_DownSpeed;
LogUtil.info("点击【移栽位置】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
LogUtil.info("点击【移栽位置】,料盘高度【" + cmbSizeList.Text + "】 位置【" + position + "】速度【" + speed + "】");
equipBase.UpdownAxis.AbsMove(position, speed);
}
}
......@@ -398,12 +394,10 @@ namespace OnlineStore.AssemblyLine
{
int position = FormUtil.GetIntValue(txtP1);
if (position != -1)
{
string portName = equipBean.Config.UpDown_Axis.DeviceName;
int SlvAddr = equipBean.Config.UpDown_Axis.GetAxisValue();
{
int speed = equipBean.Config.UpdownAxis_P1Speed;
LogUtil.info("点击【P1点测试】, 位置【" + position + "】速度【" + speed + "】");
ACServerManager.AbsMove(portName, SlvAddr, position, speed);
equipBase.UpdownAxis.AbsMove(position, speed);
}
}
......
......@@ -16,7 +16,7 @@ namespace OnlineStore.AssemblyLine
{
public partial class AxisMoveControl : UserControl
{
private List<ConfigMoveAxis> axisList = new List<ConfigMoveAxis>();
private List<AxisBean> axisList = new List<AxisBean>();
private EquipBase equipBase = null;
private string PortName = "";
private int SlvAddr = 0;
......@@ -25,37 +25,30 @@ namespace OnlineStore.AssemblyLine
{
InitializeComponent();
}
public void LoadData(EquipBase equipBase, params ConfigMoveAxis[] moveAxis)
public void LoadData(EquipBase equipBase, params AxisBean[] moveAxis)
{
this.equipBase = equipBase;
axisList = new List<ConfigMoveAxis>(moveAxis);
axisList = new List<AxisBean>(moveAxis);
if (axisList.Count > 0)
{
comboBox1.Items.Clear();
foreach (ConfigMoveAxis a in axisList)
foreach (AxisBean a in axisList)
{
comboBox1.Items.Add(a.Explain);
comboBox1.Items.Add(a.Config.Explain);
}
comboBox1.SelectedIndex = 0;
PortName = moveAxis[0].DeviceName;
SlvAddr = moveAxis[0].GetAxisValue();
PortName = moveAxis[0].Config.DeviceName;
SlvAddr = moveAxis[0].Config.GetAxisValue();
txtAxisDeviceName.Text = PortName;
txtAxisValue.Text = SlvAddr.ToString();
}
}
private void btnOpenAxis_Click(object sender, EventArgs e)
{
//string portName = txtAxisDeviceName.Text;
//short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
//ACServerManager.OpenPort(portName);
//ACServerManager.AlarmClear(portName, SlvAddr);
//Thread.Sleep(100);
//ACServerManager.ServoOn(portName, SlvAddr);
{
LogUtil.info("点击【打开伺服】,端口号【" + PortName + "】地址【" + SlvAddr + "】 ");
equipBase.OpenAxis(axisList[comboBox1.SelectedIndex]);
equipBase.RunAxis(false, axisList[comboBox1.SelectedIndex]);
}
private void btnCloseAxis_Click(object sender, EventArgs e)
......@@ -132,7 +125,7 @@ namespace OnlineStore.AssemblyLine
{
if (comboBox1.SelectedIndex > 0)
{
ConfigMoveAxis axis = axisList[comboBox1.SelectedIndex];
ConfigMoveAxis axis = axisList[comboBox1.SelectedIndex].Config;
PortName = axis.DeviceName;
SlvAddr = axis.GetAxisValue();
txtAxisDeviceName.Text = PortName;
......
......@@ -71,6 +71,7 @@
<Compile Include="assemblyLine\FeedingEquip.cs" />
<Compile Include="assemblymanager\StoreServerManager.cs" />
<Compile Include="assemblymanager\TrayManager.cs" />
<Compile Include="baan\AxisBean.cs" />
<Compile Include="deviceLibrary\halcon\CodeManager.cs" />
<Compile Include="deviceLibrary\IO\AIOBOX\AIOBOXManager.cs" />
<Compile Include="deviceLibrary\IO\IOManager.cs" />
......
......@@ -16,7 +16,8 @@ namespace OnlineStore.DeviceLibrary
public partial class FeedingEquip : EquipBase
{
public FeedingEquip_Config Config;
public AxisBean BatchAxis = null;
public FeedingEquip(string cid, FeedingEquip_Config config)
{
this.DeviceID = config.Id;
......@@ -24,13 +25,15 @@ namespace OnlineStore.DeviceLibrary
this.Config = config;
IsDebug = config.IsDebug.Equals(1);
Name = (" " + "_入料_" + DeviceID % 100 + " ").ToUpper();
Init();
MoveInfo = new LineMoveInfo(DeviceID, "入料-" + DeviceID + "-Move");
SecondMoveInfo = new LineMoveInfo(DeviceID, "入料-" + DeviceID + "-SecondMove");
Init();
UseAxis = true;
Config.SetAxisParam();
UpdownAxis = new AxisBean(config.UpDown_Axis);
BatchAxis = new AxisBean(config.Batch_Axis);
MoveInfo = new LineMoveInfo(DeviceID, "入料-" + DeviceID + "-Move");
SecondMoveInfo = new LineMoveInfo(DeviceID, "入料-" + DeviceID + "-SecondMove");
}
/// <summary>
/// 开始运行
......@@ -120,22 +123,18 @@ namespace OnlineStore.DeviceLibrary
{
mainTimer.Stop();
StopMove();
if (!RunAxis(true,Config.Batch_Axis))
if (RunAxis(true, BatchAxis) && RunAxis(true, UpdownAxis))
{
return false;
}
if (!RunAxis(true, Config.UpDown_Axis))
{
return false;
}
alarmType = LineAlarmType.None;
runStatus = LineRunStatus.HomeMoving;
LogInfo("开始原点返回: ");
MoveInfo.NewMove(LineMoveType.ReturnHome);
StartReset();
return true;
alarmType = LineAlarmType.None;
runStatus = LineRunStatus.HomeMoving;
LogInfo("开始原点返回: ");
MoveInfo.NewMove(LineMoveType.ReturnHome);
StartReset();
return true;
}return false;
}
/// <summary>
/// 入料装置重置
......@@ -143,21 +142,16 @@ namespace OnlineStore.DeviceLibrary
public override bool Reset()
{
WarnMsg = "";
StopMove();
if (!RunAxis(true, Config.Batch_Axis))
{
return false;
}
if (!RunAxis(true, Config.UpDown_Axis))
StopMove();
if (RunAxis(true, BatchAxis) && RunAxis(true, UpdownAxis))
{
return false;
}
alarmType = LineAlarmType.None;
LogInfo("开始重置: ");
runStatus = LineRunStatus.Reset;
MoveInfo.NewMove(LineMoveType.Reset);
StartReset();
return true;
alarmType = LineAlarmType.None;
LogInfo("开始重置: ");
runStatus = LineRunStatus.Reset;
MoveInfo.NewMove(LineMoveType.Reset);
StartReset();
return true;
}return false;
}
private void StartReset()
{
......@@ -210,14 +204,14 @@ namespace OnlineStore.DeviceLibrary
case LineMoveStep.FR_04_LocationCylinder_Down:
LogInfo(MoveInfo.MoveType + ":FR_05_AxisHomeMove:2伺服原点返回");
MoveInfo.NextMoveStep(LineMoveStep.FR_05_AxisHomeMove);
ACAxisHomeMove(Config.Batch_Axis);
ACAxisHomeMove(Config.UpDown_Axis);
BatchAxis.HomeMove(MoveInfo);
UpdownAxis.HomeMove(MoveInfo);
break;
case LineMoveStep.FR_05_AxisHomeMove:
LogInfo(MoveInfo.MoveType + ":FR_06_AxisToP1:2伺服到P1点");
MoveInfo.NextMoveStep(LineMoveStep.FR_06_AxisToP1);
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
BatchAxis.AbsMove (MoveInfo, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
break;
case LineMoveStep.FR_06_AxisToP1:
LogInfo(MoveInfo.MoveType + ":FR_07_MoveCylinder_Up:上料横移机构上升SOL");
......@@ -254,8 +248,8 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove();
SecondMoveInfo.EndMove();
BatchAxisStopCheck();
ACServerManager.SuddenStop(Config.Batch_Axis);
ACServerManager.SuddenStop(Config.UpDown_Axis);
BatchAxis.SuddenStop();
UpdownAxis.SuddenStop();
if (Config.SidesWayNum <= 0)
{
IOMove(IO_Type.FL_StopCylinder_Down1, IO_VALUE.LOW);
......@@ -373,7 +367,7 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(TargetIoType).Equals(TargetIoValue))
{
LogUtil.info(Name+ "上料轴,检测到 " + TargetIoType + "=" + TargetIoValue + ",可以停止运动");
ACServerManager.SuddenStop(Config.Batch_Axis.DeviceName, Config.Batch_Axis.GetAxisValue());
BatchAxis.SuddenStop();
BatchAxisStopCheck();
}
IsInProcess = false;
......
......@@ -10,7 +10,7 @@ namespace OnlineStore.DeviceLibrary
{
partial class FeedingEquip
{
protected override bool CheckWaitResult(WaitResultInfo wait)
protected override bool CheckWaitResult(LineMoveInfo moveInfo,WaitResultInfo wait)
{
if (wait.WaitType.Equals(WaitEnum.W101_BatchAxisMove))
{
......@@ -21,7 +21,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
bool result = ACAxisMoveIsEnd(wait.AxisInfo, wait.TargetPosition, wait.TargetSpeed, out msg);
bool result = AxisBean.ACAxisMoveIsEnd(moveInfo, wait.AxisInfo, wait.TargetPosition, wait.TargetSpeed, out msg);
if (!result)
{
LogUtil.error(msg);
......@@ -193,7 +193,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(SecondMoveInfo.MoveNum + "*************** 托盘号【" + currTrayNum + "】 ,需要出库,开始出库处理,升降伺服到P1点");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_201_UpDownToP1);
InStoreLog(" MO_201_UpDownToP1 紧急出料移栽:升降伺服到P1点" );
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
else
......@@ -305,7 +305,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_204_UpdownAxisToP2);
int targetP = Config.GetUpdownPositionP2(SecondMoveInfo.MoveParam.PlateH);
InStoreLog(" MO_204_UpdownAxisToP2 紧急出料移栽:升降伺服下降到指定位置"+targetP);
ACAxisMove(Config.UpDown_Axis, targetP, Config.UpdownAxis_P2Speed);
UpdownAxis.AbsMove(MoveInfo, targetP, Config.UpdownAxis_P2Speed);
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_204_UpdownAxisToP2))
{
......@@ -317,7 +317,7 @@ namespace OnlineStore.DeviceLibrary
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_206_UpdownAxisToP1);
InStoreLog(" MO_206_UpdownAxisToP1 紧急出料移栽:升降伺服到P1");
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_206_UpdownAxisToP1))
{
......@@ -471,7 +471,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FI_08_BatchAxisToP2);
InStoreLog(" FI_08_BatchAxisToP2 开始:提升轴下降到位P2");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_08_BatchAxisToP2))
{
......@@ -499,7 +499,7 @@ namespace OnlineStore.DeviceLibrary
//无料盘
MoveInfo.NextMoveStep(LineMoveStep.FI_31_BatchAxisToP2);
InStoreLog(" FI_31_BatchAxisToP2 料盘移栽:未检测到料盘,提升伺服到P2点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_11_MoveCylinder_Take))
......@@ -559,7 +559,7 @@ namespace OnlineStore.DeviceLibrary
int targetPositon = Config.GetUpdownPositionP2(LastHeight);
InStoreLog(" FI_19_UpdownAxisToP2 料盘移栽:移栽伺服下降到指定位置:" + targetPositon);
ACAxisMove(Config.UpDown_Axis, targetPositon, Config.UpdownAxis_P2Speed);
UpdownAxis.AbsMove(MoveInfo, targetPositon, Config.UpdownAxis_P2Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_19_UpdownAxisToP2))
{
......@@ -571,7 +571,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_21_UpDownAxisToP1);
InStoreLog(" FI_21_UpDownAxisToP1 料盘移栽:升降伺服到P1点");
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_21_UpDownAxisToP1))
{
......@@ -605,7 +605,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_31_BatchAxisToP2);
InStoreLog(" FI_31_BatchAxisToP2 上料完成:未检测到料盘,提升伺服到P2点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_31_BatchAxisToP2))
{
......@@ -617,7 +617,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FI_33_BatchAxisToP1);
InStoreLog(" FI_33_BatchAxisToP1 上料完成:提升伺服到P1点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FI_33_BatchAxisToP1))
{
......@@ -685,14 +685,10 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.CanWhileCount = 0;
// 需要增加定时器,获取验证信号并停止伺服
StartMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
if (StartMovePosition.Equals(-1))
{
StartMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
}
StartMovePosition = BatchAxis.GetAclPosition();
MoveInfo.WaitList.Add(WaitResultInfo.WaitBatchAxis(Config.Batch_Axis, Config.BatchAxisP3, Config.BatchAxis_P3Speed));
Config.Batch_Axis.TargetPosition = Config.BatchAxisP3;
ACServerManager.AbsMove(Config.Batch_Axis.DeviceName, Config.Batch_Axis.GetAxisValue(), Config.BatchAxisP3, Config.BatchAxis_P3Speed);
BatchAxis.AbsMove(Config.BatchAxisP3, Config.BatchAxis_P3Speed);
//开始检测信号
BatchAxisStartCheck();
}
......@@ -706,11 +702,7 @@ namespace OnlineStore.DeviceLibrary
{
int AxisChangeValue = Config.Height_ChangeValue;
//计算高度
EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
if (EndMovePosition.Equals(-1))
{
EndMovePosition = ACServerManager.GetActualtPosition(Config.Batch_Axis);
}
EndMovePosition = BatchAxis.GetAclPosition();
LastHeight = (int)Math.Ceiling(1F * (EndMovePosition - StartMovePosition) / AxisChangeValue);
int addHeight = 0;
//如果检测信号未亮,极限亮了,需要补充高
......@@ -870,7 +862,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.FO_08_BatchAxisToP2);
InStoreLog(" FO_08_BatchAxisToP2 开始:提升轴下降到位P2");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_08_BatchAxisToP2))
{
......@@ -882,14 +874,14 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FO_10_AxisUpMove);
InStoreLog(" FO_10_AxisUpMove 开始:上料轴开始慢速上升到P3点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP3, Config.BatchAxis_TargetSpeed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP3, Config.BatchAxis_TargetSpeed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_10_AxisUpMove))
{
MoveInfo.NextMoveStep(LineMoveStep.FO_11_AxisDownMove);
InStoreLog(" FO_31_BatchAxisToP2 料盘移栽:提升伺服下降指定的高度");
int targetPosition = Config.BatchAxisP3 + lastOutParam.PlateH * Config.Height_ChangeValue;
ACAxisMove(Config.Batch_Axis, targetPosition, Config.BatchAxis_TargetSpeed);
BatchAxis.AbsMove(MoveInfo, targetPosition, Config.BatchAxis_TargetSpeed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_11_AxisDownMove))
......@@ -914,7 +906,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FO_31_BatchAxisToP2);
InStoreLog(" FO_31_BatchAxisToP2 出料完成:未检测到料盘,提升伺服到P2点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP2, Config.BatchAxis_P2Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_31_BatchAxisToP2))
{
......@@ -926,7 +918,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo.NextMoveStep(LineMoveStep.FO_33_BatchAxisToP1);
InStoreLog(" FO_33_BatchAxisToP1 出料完成:提升伺服到P1点");
ACAxisMove(Config.Batch_Axis, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Config.BatchAxis_P1Speed);
}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.FO_33_BatchAxisToP1))
{
......
......@@ -43,6 +43,7 @@ namespace OnlineStore.DeviceLibrary
Config.UpDown_Axis.ServerOnDO = IO_Type.UpDownAxis_ServoOn;
Config.UpDown_Axis.BreakOnDO = IO_Type.UpDownAxis_BreakOn;
}
UpdownAxis=new AxisBean (config.UpDown_Axis);
}
public override bool StartRun(bool isDebug=false)
......@@ -153,7 +154,7 @@ namespace OnlineStore.DeviceLibrary
public bool ReturnHome()
{
mainTimer.Stop();
if (!RunAxis(true,Config.UpDown_Axis))
if (!RunAxis(true, UpdownAxis))
{
return false;
}
......@@ -178,7 +179,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager.DelNeedEmptyTrayNum();
MoveInfo.EndMove();
}
if (!RunAxis(true, Config.UpDown_Axis))
if (!RunAxis(true, UpdownAxis))
{
return false;
}
......@@ -302,7 +303,7 @@ namespace OnlineStore.DeviceLibrary
{
if (UseAxis)
{
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
else
{
......@@ -315,7 +316,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
int position = Config.GetUpdownP2(trayHeight);
ACAxisMove(Config.UpDown_Axis, position, Config.UpdownAxis_DownSpeed);
UpdownAxis.AbsMove(MoveInfo, position, Config.UpdownAxis_DownSpeed);
}
else
{
......@@ -327,7 +328,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
int position = Config.GetUpdownP3(trayHeight);
ACAxisMove(Config.UpDown_Axis, position, Config.UpdownAxis_DownSpeed);
UpdownAxis.AbsMove(MoveInfo, position, Config.UpdownAxis_DownSpeed);
}
else
{
......@@ -339,7 +340,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownHomeMove);
ACAxisHomeMove(Config.UpDown_Axis);
UpdownAxis.HomeMove(MoveInfo);
}
else
{
......
......@@ -17,16 +17,16 @@ namespace OnlineStore.DeviceLibrary
{
public ProvidingEquip_Config Config;
public ProvidingEquip(string cid, ProvidingEquip_Config config)
{
baseConfig = config;
baseConfig = config;
this.DeviceID = config.Id;
this.Config = config;
IsDebug = config.IsDebug.Equals(1);
baseConfig = config;
Name = (" " + "_出料_" + DeviceID % 100 + " ").ToUpper();
Init();
Name = (" " + "_出料_" + DeviceID % 100 + " ").ToUpper();
Init();
MoveInfo = new LineMoveInfo(DeviceID, "出料-" + DeviceID + "-MoveInfo");
SecondMoveInfo = new LineMoveInfo(DeviceID, "出料-" + DeviceID + "-SecondMoveInfo");
UseAxis = config.UpDownUseAxis.Equals(1);
......@@ -42,6 +42,7 @@ namespace OnlineStore.DeviceLibrary
Config.UpDown_Axis.ServerOnDO = IO_Type.UpDownAxis_ServoOn;
Config.UpDown_Axis.BreakOnDO = IO_Type.UpDownAxis_BreakOn;
}
UpdownAxis = new AxisBean(config.UpDown_Axis);
}
public override bool StartRun(bool isDebug=false)
......@@ -70,7 +71,7 @@ namespace OnlineStore.DeviceLibrary
mainTimer.Enabled = false;
}
StopMove();
CloseAxis(Config.UpDown_Axis);
CloseAxis(UpdownAxis);
//停止运行时,把所有IO 置零
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
......@@ -103,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
public bool ReturnHome()
{
if (!RunAxis(true, Config.UpDown_Axis))
if (!RunAxis(true, UpdownAxis))
{
return false;
}
......@@ -121,7 +122,7 @@ namespace OnlineStore.DeviceLibrary
public override bool Reset()
{
if (!RunAxis(true, Config.UpDown_Axis))
if (!RunAxis(true, UpdownAxis))
{
return false;
}
......@@ -223,7 +224,7 @@ namespace OnlineStore.DeviceLibrary
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
if (UseAxis)
{
ACServerManager.SuddenStop(Config.UpDown_Axis);
UpdownAxis.SuddenStop();
}
CylinderMove(MoveInfo, IO_Type.TopCylinder_UP, IO_Type.TopCylinder_Down);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
......@@ -243,7 +244,7 @@ namespace OnlineStore.DeviceLibrary
{
if (UseAxis)
{
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxisP1, Config.UpdownAxis_P1Speed);
}
else
{
......@@ -256,7 +257,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
int position = Config.GetUpdownP2(trayHeight);
ACAxisMove(Config.UpDown_Axis, position, Config.UpdownAxis_DownSpeed);
UpdownAxis.AbsMove(MoveInfo, position, Config.UpdownAxis_DownSpeed);
}
else
{
......@@ -268,7 +269,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
int position = Config.GetUpdownP3(trayHeight);
ACAxisMove(Config.UpDown_Axis, position, Config.UpdownAxis_DownSpeed);
UpdownAxis.AbsMove(MoveInfo, position, Config.UpdownAxis_DownSpeed);
}
else
{
......@@ -280,7 +281,7 @@ namespace OnlineStore.DeviceLibrary
if (UseAxis)
{
MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownHomeMove);
ACAxisHomeMove(Config.UpDown_Axis);
UpdownAxis.HomeMove(MoveInfo);
}
else
{
......
......@@ -12,7 +12,7 @@ namespace OnlineStore.DeviceLibrary
{
#region 托盘检测
protected override bool CheckWaitResult(WaitResultInfo wait)
protected override bool CheckWaitResult(LineMoveInfo moveInfo, WaitResultInfo wait)
{
if (wait.WaitType.Equals(WaitEnum.W201_ProvidingCanOut))
{
......
......@@ -341,18 +341,18 @@ namespace OnlineStore.DeviceLibrary
{
// Box_Addr add = GetAddr(StartAddress);
for (int i = 1; i <= 3; i++)
// for (int i = 1; i <= 3; i++)
//{
bool result = aioBox.WriteDO(StartAddress, GetBox_Sta(onOff));
if (!result)
{
bool result = aioBox.WriteDO(StartAddress, GetBox_Sta(onOff));
if (!result)
{
LogUtil.error("AIO WriteSingleDO ["+ioIp+"] [" + StartAddress + "] 第" + i + "次失败:" + aioBox.ErrInfo);
}
else
{
break;
}
LogUtil.error("AIO WriteSingleDO [" + ioIp + "] [" + StartAddress + "] 失败:" + aioBox.ErrInfo);
}
// else
// {
// break;
// }
//}
}
else
{
......@@ -364,34 +364,33 @@ namespace OnlineStore.DeviceLibrary
LOGGER.Error("AIO WriteSingleDO [" + ioIp + "] [" + StartAddress + "] 出错啦:" + ex.ToString());
}
}
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff, int mSeconds)
public override void WriteSingleDO(string ioIp, byte slaveId, ushort StartAddress, IO_VALUE onOff, int mSeconds )
{
try
{
{
AIOBOX aioBox = getAIO(ioIp);
Box_Sta currBox_Sta = GetBox_Sta(onOff);
if (aioBox != null)
{
// Box_Addr add = GetAddr(StartAddress);
Box_Sta currBox_Sta = GetBox_Sta(onOff);
aioBox.WriteDO(StartAddress, currBox_Sta);
//写入之后,等待指定间隔后回写
System.Timers.Timer mytimer = new System.Timers.Timer(mSeconds);
mytimer.Elapsed += (o1, e1) =>
{
try
{
aioBox.WriteDO(StartAddress, aioBox.ReverseStatus(currBox_Sta));
LogUtil.debug(LOGGER, "**********定时回写入 IO [" + ioIp + "] [" + StartAddress + "]值" + aioBox.ReverseStatus(currBox_Sta) + "】:");
}
catch (Exception ex)
//写入之后,等待指定间隔后回写
System.Timers.Timer mytimer = new System.Timers.Timer(mSeconds);
mytimer.Elapsed += (o1, e1) =>
{
LogUtil.error(LOGGER, "**********定时回写入 出错:" + ex.StackTrace);
}
};
mytimer.AutoReset = false;//设置是否自动重启,即自动执行多次;
mytimer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件mytask;
try
{
aioBox.WriteDO(StartAddress, aioBox.ReverseStatus(currBox_Sta));
LogUtil.debug(LOGGER, "**********定时回写入 IO [" + ioIp + "] [" + StartAddress + "]值" + aioBox.ReverseStatus(currBox_Sta) + "】:");
}
catch (Exception ex)
{
LogUtil.error(LOGGER, "**********定时回写入 出错:" + ex.StackTrace);
}
};
mytimer.AutoReset = false;//设置是否自动重启,即自动执行多次;
mytimer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件mytask;
}
else
{
......@@ -444,10 +443,7 @@ namespace OnlineStore.DeviceLibrary
AIOBOX aioBox = getAIO(ioIP);
if (aioBox != null)
{
Box_Sta sta = Box_Sta.Off;
// Box_Addr addr = GetAddr(StartAddress);
// int index = (int)StartAddress - (int)StoreManager.Config.GetDILength(ioIP);
Box_Sta sta = Box_Sta.Off;
if (DOValueMap.ContainsKey(ioIP) && DOValueMap[ioIP].Count > StartAddress)
{
sta = DOValueMap[ioIP][StartAddress];
......
......@@ -40,31 +40,8 @@ namespace OnlineStore.LoadCSVLibrary
public int SubType { get; set; }
public string ConfigStr { get; set; }
ushort value = 0;
public ushort GetIOAddr()
{
if (value > 0)
{
return value;
}
try
{
value = (ushort)Convert.ToInt32(ProValue);
}
catch (Exception ex)
{
LOGGER.Error("出错:", ex);
}
return value;
}
public virtual int GetValue()
{
if (ProValue.Equals(""))
{
return -1;
}
return Convert.ToInt32(ProValue);
}
public override string ToString()
{
// return "ConfigBase。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProVale;
......@@ -135,10 +112,7 @@ namespace OnlineStore.LoadCSVLibrary
/// 出入库目标值(只有出入库过程中才会有效)
/// </summary>
public int TargetPosition { get; set; }
///// <summary>
///// 速度倍率
///// </summary>
//public int ResolveSpeed { get; set; }
/// <summary>
/// 最小位置
/// </summary>
......@@ -159,28 +133,21 @@ namespace OnlineStore.LoadCSVLibrary
}
return false;
}
public bool PositionIsHasLimit(){
if (PositionMin.Equals(PositionMax))
{
return false;
} return true;
}
/// <summary>
/// 下拉列表显示
/// </summary>
public string DisplayStr
{
get {
return Explain + "(" + ProName + ")";
get
{
return Explain + "(" + ProName + ")";
}
set
{
}
}
public override int GetValue()
{
return GetAxisValue();
}
/// <summary>
/// 使用康泰克板卡表示轴编号,使用Ac伺服电机表示伺服地址
/// </summary>
......@@ -192,29 +159,14 @@ namespace OnlineStore.LoadCSVLibrary
return -1;
}
return (short)Convert.ToInt32(ProValue);
}
//public override string ToString()
//{
// return "ConfigMoveAxis。" + "类型:" + ProType + ",说明:" + Explain + ",名称:" + ProName + ",属性值:" + ProVale + ",设备名称:" + DeviceName;
//}
}
public override void CheckField()
{
if (String.IsNullOrEmpty( ProType) || String.IsNullOrEmpty( ProName ) || String.IsNullOrEmpty( DeviceName ) || String.IsNullOrEmpty( ProValue ))
{
throw new CVSFieldNotMatchingExection(ToString() + ",【类型:ProType】【名称:ProName】【属性值:ProVale】【设备名称:DeviceName】必须配置值!");
}
}
public bool IsMyAxis(string DeviceName, int AxisNo)
{
int AxisValue = GetAxisValue();
if (DeviceName.Equals(DeviceName) && AxisValue.Equals(AxisNo))
{
return true;
}
return false;
}
}
}
......@@ -288,8 +240,24 @@ namespace OnlineStore.LoadCSVLibrary
set
{
}
}
}
ushort value = 0;
public ushort GetIOAddr()
{
if (value > 0)
{
return value;
}
try
{
value = (ushort)Convert.ToInt32(ProValue);
}
catch (Exception ex)
{
LOGGER.Error("出错:", ex);
}
return value;
}
//public override string ToString()
//{
// return "[" + ProType + "]" + Explain + "," + ProName + ",属性值:" + ProVale + ",设备名称:" + DeviceName + ",描述:" + Describe + ",电器定义:" + ElectricalDefinition + ",代码定义:" + CodeDefinition + "";
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!