Commit f575439c LN

1

1 个父辈 5d86a6d0
......@@ -110,22 +110,7 @@ namespace OnlineStore.AssemblyLine
LogUtil.error(LOGGER, ex.StackTrace);
}
}
private void btnWriteSingleDO_Click(object sender, EventArgs e)
{
string deviceName = txtDoName.Text;
int index = FormUtil.GetIntValue(txtDOIndex);
IO_VALUE value = checkBox1.Checked ? IO_VALUE.HIGH:IO_VALUE.LOW ;
int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId);
if (time > 0)
{
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value, time);
}
else
{
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, (IO_VALUE)value);
}
}
private ConfigIO GetSelectDO()
{
......@@ -138,6 +123,22 @@ namespace OnlineStore.AssemblyLine
return null;
}
IOTextControl selectControl = null;
private void WriteDO(IO_VALUE value)
{
string deviceName = txtDoName.Text;
int index = FormUtil.GetIntValue(txtDOIndex);
int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId);
if (time > 0)
{
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, value, time);
}
else
{
IOManager.instance.WriteSingleDO(deviceName, (byte)slaveId, (ushort)index, value);
}
}
private void cmbWriteIO_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbWriteIO.SelectedIndex >= 0)
......@@ -157,12 +158,19 @@ namespace OnlineStore.AssemblyLine
}
}
}
private void btnWriteSingleDO_Click(object sender, EventArgs e)
{
WriteDO(IO_VALUE.HIGH);
}
private void button1_Click(object sender, EventArgs e)
{
WriteDO(IO_VALUE.LOW);
}
private void FrmStoreIOStatus_Load(object sender, EventArgs e)
{
// KNDAIManager.NeedShow = true;
}
private void cmbWriteIO_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0)
......@@ -206,25 +214,7 @@ namespace OnlineStore.AssemblyLine
}
}
}
private void btnReadAllDi_Click(object sender, EventArgs e)
{
string deviceName = txtDoName.Text;
IO_VALUE value = checkBox1.Checked ? IO_VALUE.HIGH : IO_VALUE.LOW;
int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId);
IOManager.instance.ReadAllDI(deviceName, (byte)slaveId );
}
private void btnReadAllDo_Click(object sender, EventArgs e)
{
string deviceName = txtDoName.Text;
IO_VALUE value = checkBox1.Checked ? IO_VALUE.HIGH : IO_VALUE.LOW;
int time = FormUtil.GetIntValue(txtWriteTime);
int slaveId = FormUtil.GetIntValue(txtSlaveId);
IOManager.instance.ReadAllDO(deviceName, (byte)slaveId);
}
private void FrmIOStatus_Shown(object sender, EventArgs e)
{
timer1.Start();
......@@ -350,5 +340,7 @@ namespace OnlineStore.AssemblyLine
{
BtnMove(btnSw4Top, "环形线横移4顶升上升", "环形线横移4顶升下降", IO_Type.SW4_TopCylinder_Down, IO_Type.SW4_TopCylinder_Up);
}
}
}
......@@ -59,7 +59,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="assemblyLine\AssemblyLineManager.cs" />
<Compile Include="assemblyLine\ALineManager.cs" />
<Compile Include="assemblyLine\DischargeLine.cs" />
<Compile Include="assemblyLine\DischargeLine_Partial.cs" />
<Compile Include="assemblyLine\ProvidingEquip_Partial.cs" />
......
......@@ -116,9 +116,20 @@ namespace OnlineStore.DeviceLibrary
//{
// StartCheckFixture();
//}
//皮带1皮带2先转动,到达位置后,皮带3再转动
}
IOTimeOutProcess();
//判断红灯状态
if (alarmType.Equals(LineAlarmType.None))
{
IOMove(IO_Type.DLine_RunAlarm, IO_VALUE.LOW);
}
else if(IOValue(IO_Type.DLine_RunAlarm).Equals(IO_VALUE.LOW))
{
IOMove(IO_Type.DLine_RunAlarm, IO_VALUE.HIGH);
}
}
......
......@@ -97,20 +97,6 @@ namespace OnlineStore.DeviceLibrary
}
#endregion
private void CheckLog(string msg)
{
LogUtil.debug(Name + msg);
}
private void InStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
private void OutStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
}
}
......@@ -887,7 +887,7 @@ namespace OnlineStore.DeviceLibrary
string wareNum = serverResult.barcode ;
int trayCode = TrayManager.GetNum(0);
LogUtil.info( "更新盘空满信息,托盘号【" + trayCode + "】,是否有料盘【" + true + "】,出库入库【" + 1 + "】");
TrayManager.UpdateFixtureValue(trayCode, true, 1,wareNum,posId,plateH,plateW);
TrayManager.UpdateFixtureValue(trayCode, true, ReelType.InStore,wareNum,posId,plateH,plateW);
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if (LineServer.BoxCanInStore(moveEquip.DeviceID))
......
......@@ -51,6 +51,9 @@ namespace OnlineStore.DeviceLibrary
}
return false;
}
private bool isInprocess = false;
private DateTime lastProTime = DateTime.Now;
private void InOutTimerProcess()
......@@ -528,12 +531,38 @@ namespace OnlineStore.DeviceLibrary
}
return false;
}
#endregion
#region 横移处理
/// <summary>
/// 横移无处理
/// </summary>
/// <param name="sidesWayNum"></param>
/// <returns></returns>
internal bool SwNoProcess(int sidesWayNum)
{
if (sidesWayNum.Equals(1) || sidesWayNum.Equals(4))
{
if (SW41_MoveInfo.MoveType.Equals(LineMoveType.None))
{
return true;
}
}
else if (sidesWayNum.Equals(2) || sidesWayNum.Equals(3))
{
if (SW23_MoveInfo.MoveType.Equals(LineMoveType.None))
{
return true;
}
}
else
{
return true;
}
return false;
}
private static LineMoveInfo SW41_MoveInfo = null;
private static LineMoveInfo SW23_MoveInfo = null;
......
......@@ -160,7 +160,7 @@ namespace OnlineStore.DeviceLibrary
alarmType = LineAlarmType.None;
runStatus = LineRunStatus.HomeMoving;
LogInfo("开始原点返回: (上下气缸回原点,阻挡气缸输入=0 )开始");
LogInfo("开始原点返回: (上下气缸回原点,阻挡1气缸上升 )开始");
MoveInfo.NewMove(LineMoveType.ReturnHome);
return true;
......@@ -186,7 +186,7 @@ namespace OnlineStore.DeviceLibrary
//重置时清理盘号,从头开始判断
preTrayNum = 0;
currMoveTrayNum = 0;
LogInfo("开始重置:清空托盘号,(上下气缸回原点,阻挡气缸输入=0 )开始;");
LogInfo("开始重置:清空托盘号,(上下气缸回原点,阻挡1气缸上升 )开始;");
runStatus = LineRunStatus.Reset;
SecondMoveInfo.EndMove();
MoveInfo.NewMove(LineMoveType.Reset);
......
......@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
mainTimer.Stop();
alarmType = LineAlarmType.None;
runStatus = LineRunStatus.HomeMoving;
LogInfo("开始原点返回: (上下气缸回原点,阻挡气缸输入=0 )开始");
LogInfo("开始原点返回: (上下气上升,阻挡气缸上升 )开始");
SecondMoveInfo.EndMove();
MoveInfo.EndMove();
MoveInfo.NewMove(LineMoveType.ReturnHome);
......@@ -108,7 +108,7 @@ namespace OnlineStore.DeviceLibrary
alarmType = LineAlarmType.None;
preTrayNum = 0;
currMoveTrayNum = 0;
LogInfo("开始重置:清理盘号,(上下气缸回原点,阻挡气缸输入=0 )开始;");
LogInfo("开始重置:清理盘号,(上下气上升,阻挡气缸上升 )开始 ");
runStatus = LineRunStatus.Reset;
MoveInfo.EndMove();
SecondMoveInfo.EndMove();
......@@ -129,7 +129,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
}
isInPro = false;
......@@ -157,7 +157,7 @@ namespace OnlineStore.DeviceLibrary
case LineMoveStep.MH_UpDownCylinder_Up:
MoveInfo.NextMoveStep(LineMoveStep.MH_OtherCylinder_Back);
LogInfo(MoveInfo.MoveType + " : (上升到位,顶升气缸下降,前后气缸回退 )开始");
LogInfo(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_Slack, IO_Type.ClampCylinder_Tighten);
......
......@@ -30,11 +30,11 @@ namespace OnlineStore.DeviceLibrary
if (IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.HIGH))
{
//托盘在两个阻挡内
if (num > 0)
if (num > 0&& LineManager.Line.SwNoProcess(Config.SidesWayNum))
{
TrayManager.UpdateSWState(Config.SidesWayNum, 2);
SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.LOW));
......@@ -44,13 +44,13 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + "检测到check4亮,但是为获取到托盘号,StartCheckFixture失败~");
}
}
else if (IOValue(IO_Type.StopCylinder_Check1).Equals(IO_VALUE.HIGH))
else if (IOValue(IO_Type.StopCylinder_Check1).Equals(IO_VALUE.HIGH) && LineManager.Line.SwNoProcess(Config.SidesWayNum))
{
//托盘在第一个阻挡处
SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_StopCylinder1Down);
TrayManager.UpdateSWState(Config.SidesWayNum, 2);
CheckLog(" 托盘检测:料盘检测 SecondStoreMove(MIO_01_StopCylinder1Down阻挡气缸1-1下降 ,最多等待1秒)");
CheckLog(" 托盘检测:料盘检测 SecondMove(MIO_01_StopCylinder1Down阻挡气缸1-1下降 ,最多等待1秒)");
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1500));
......@@ -79,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
#region 托盘检测
if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_StopCylinder1Down))
{
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_02_FixtureCheck 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_02_FixtureCheck 阻挡气缸1-1上升,等待 阻挡2托盘检测=1)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.LOW));
......@@ -87,7 +87,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_02_FixtureCheck))
{
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down);
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.LOW));
......@@ -95,7 +95,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_StopCylinder2Down))
{
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_04_Wait ,等待编码信号稳定)");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_04_Wait ,等待编码信号稳定)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
}
......@@ -136,7 +136,7 @@ namespace OnlineStore.DeviceLibrary
{
TrayManager.UpdateTrayNumError(-1, "");
}
CheckLog("托盘放行 SecondStoreMove:(MO_07_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
CheckLog("托盘放行 SecondMove:(MO_07_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_13_WaitCanGo);
}
catch (Exception ex)
......@@ -146,7 +146,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_05_WaitTime))
{
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_06_TopCylinderUp 顶升气缸上 升 )");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_06_TopCylinderUp 顶升气缸上 升 )");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_06_TopCylinderUp);
CylinderMove(SecondMoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_UP);
......@@ -156,7 +156,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_06_TopCylinderUp))
{
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_07_TopCylinderUpWait ,顶升气缸上升时等待1秒钟,再下降)");
CheckLog("托盘检测(流水线阻挡)SecondMove:(MIO_07_TopCylinderUpWait ,顶升气缸上升时等待1秒钟,再下降)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_07_TopCylinderUpWait);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
}
......@@ -169,7 +169,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_08_WaitInStore) && MoveInfo.MoveType.Equals(LineMoveType.None))
{
CheckLog("托盘放行 SecondStoreMove:(MIO_09_WaitLetFixtureGo ,等待移栽完成后放开阻挡)");
CheckLog("托盘放行 SecondMove:(MIO_09_WaitLetFixtureGo ,等待移栽完成后放开阻挡)");
StartOutStoreMove(SecondMoveInfo.MoveParam);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_09_WaitLetFixtureGo);
}
......@@ -178,7 +178,7 @@ namespace OnlineStore.DeviceLibrary
#region 不需要出出料,直接放行
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_12_TopCylinder_Down))
{
CheckLog("托盘放行 SecondStoreMove:(MO_13_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
CheckLog("托盘放行 SecondMove:(MO_13_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_13_WaitCanGo);
//更新横移托盘已处理完成
TrayManager.UpdateSWState(Config.SidesWayNum, 1);
......@@ -186,7 +186,7 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_13_WaitCanGo))
{
CheckLog("托盘放行 SecondStoreMove:(MO_14_StopCylinder2_Down ,阻挡气缸1-2下降)");
CheckLog("托盘放行 SecondMove:(MO_14_StopCylinder2_Down ,阻挡气缸1-2下降)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_14_StopCylinder2_Down);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH));
......@@ -194,14 +194,14 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_14_StopCylinder2_Down))
{
CheckLog("托盘放行 SecondStoreMove:(MO_15_Tray_Check , 阻挡2托盘检测=0), 延时2秒)");
CheckLog("托盘放行 SecondMove:(MO_15_Tray_Check , 阻挡2托盘检测=0), 延时2秒)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_Tray_Check);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.LOW));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_Tray_Check))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_StopCylinder_Back);
CheckLog("托盘放行 SecondStoreMove:(MO_16_StopCylinder_Back , 阻挡气缸1-2上升 )");
CheckLog("托盘放行 SecondMove:(MO_16_StopCylinder_Back , 阻挡气缸1-2上升 )");
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down2, IO_VALUE.LOW));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
......@@ -209,7 +209,7 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_16_StopCylinder_Back))
{
preTrayNum = currMoveTrayNum;
CheckLog("托盘放行 SecondStoreMove:(托盘放行结束) ");
CheckLog("托盘放行 SecondMove:(托盘放行结束) ");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo.EndMove();
}
......@@ -290,7 +290,7 @@ namespace OnlineStore.DeviceLibrary
TrayManager.UpdateFixtureValue(num );
//阻挡气缸移动
InStoreLog("放托盘(放开阻挡):SecondStoreMove=MO_12_TopCylinder_Down 物品已移走,顶升气缸1下降)");
InStoreLog("放托盘(放开阻挡):SecondMove=MO_12_TopCylinder_Down 物品已移走,顶升气缸1下降)");
SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_12_TopCylinder_Down);
if (Config.SidesWayNum <= 0)
......
......@@ -58,4 +58,29 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public int PlateW { get; set; }
}
/// <summary>
/// 托盘上的物料的类型
/// </summary>
internal class ReelType
{
/// <summary>
/// 等待入库料盘
/// </summary>
internal static int InStore = 1;
/// <summary>
/// 料仓出库料盘
/// </summary>
internal static int OutStore = 2;
/// <summary>
/// 紧急出库料盘
/// </summary>
internal static int OutStore_Equip = 3;
/// <summary>
/// 入库失败需要NG气缸退出的料盘
/// </summary>
internal static int InStoreNG = 4;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!