Ver código fonte

冲突解决

样式分支
pry 2 anos atrás
pai
commit
20c5c906ad
27 arquivos alterados com 282 adições e 128 exclusões
  1. +1
    -1
      BPASmartClient.Business/BPASmartClient.Business.csproj
  2. +10
    -0
      BPASmartClient.Business/Plugin/DeviceMgr.cs
  3. +15
    -0
      BPASmartClient.Business/Plugin/OrderProxy.cs
  4. +7
    -1
      BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj
  5. BIN
     
  6. BIN
     
  7. BIN
     
  8. +9
    -1
      BPASmartClient.CustomResource/Themes/MyStyle.xaml
  9. +1
    -1
      BPASmartClient.Device/BPASmartClient.Device.csproj
  10. +1
    -1
      BPASmartClient.Model/BPASmartClient.Model.csproj
  11. +18
    -0
      BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs
  12. +0
    -4
      BPASmartClient.MorkF/BPASmartClient.MorkF.csproj
  13. +115
    -107
      BPASmartClient.MorkF/Control_MorkF.cs
  14. +1
    -0
      BPASmartClient.MorkF/GVL_MorkF.cs
  15. +13
    -0
      BPASmartClient.MorkF/Model/General_Config.cs
  16. +1
    -1
      BPASmartClient.MorkF/OrderLocInfo.cs
  17. +1
    -0
      BPASmartClient.MorkF/View/DebugView.xaml
  18. +1
    -0
      BPASmartClient.MorkF/View/DebugView.xaml.cs
  19. +4
    -1
      BPASmartClient.MorkF/ViewModel/DebugViewModel.cs
  20. +3
    -1
      BPASmartClient.MorkM/Control_MORKM.cs
  21. +5
    -1
      BPASmartClient.MorkS/Control_Morks.cs
  22. +4
    -4
      BPASmartClient/App.config
  23. +23
    -0
      BPASmartClient/Control/GYLCControl.xaml
  24. +28
    -0
      BPASmartClient/Control/GYLCControl.xaml.cs
  25. +7
    -1
      BPASmartClient/MainWindow.xaml
  26. +1
    -1
      DosingSystem/DosingSystem.csproj
  27. +13
    -2
      DosingSystem/View/NewRecipeView.xaml

+ 1
- 1
BPASmartClient.Business/BPASmartClient.Business.csproj Ver arquivo

@@ -8,7 +8,7 @@

<ItemGroup>
<PackageReference Include="BPA.ApolloClient" Version="1.0.12" />
<PackageReference Include="BPA.Message" Version="1.0.43" />
<PackageReference Include="BPA.Message" Version="1.0.45" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="6.0.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.0" />


+ 10
- 0
BPASmartClient.Business/Plugin/DeviceMgr.cs Ver arquivo

@@ -5,6 +5,7 @@ using BPASmartClient.Helper;
using BPASmartClient.Http;
using BPASmartClient.Message;
using BPASmartClient.Model;
using BPASmartClient.Model.小炒机;
using BPASmartClient.Peripheral;
using Newtonsoft.Json;
using System;
@@ -128,6 +129,15 @@ namespace BPASmartClient.Business
MessageLog.GetInstance.Show($"物料ID:=[{x.BatchingId}],{x.BatchingLoc}号位置:{x.BatchingCount}");
});
}
else if (PushType == 2)//小炒API流程获取,待定
{
new StirFryGoodsEvent()
{
DeviceId = device.DeviceId,
stirFrymessage = JsonConvert.DeserializeObject<StirFryPushMessage>(result)
}.Publish();
MessageLog.GetInstance.Show("接收到【 API 】获取的小炒流程信息");
}
}
catch (Exception ex)
{


+ 15
- 0
BPASmartClient.Business/Plugin/OrderProxy.cs Ver arquivo

@@ -1,11 +1,14 @@
//#define test
using BPA.Message;
using BPA.Message.Enum;
using BPA.Models;
using BPASmartClient.Device;
using BPASmartClient.EventBus;
using BPASmartClient.Helper;
using BPASmartClient.Http;
using BPASmartClient.Message;
using BPASmartClient.Model;
using BPASmartClient.Model.小炒机;
using Newtonsoft.Json;
using System;
using System.Collections.Concurrent;
@@ -99,6 +102,18 @@ namespace BPASmartClient.Business
MessageLog.GetInstance.Show($"物料ID:=[{x.BatchingId}],{x.BatchingLoc}号位置:{x.BatchingCount}");
});
}
//小炒流程信息
else if (message is StirFryPushMessage frybom)
{
IDevice device = deviceMgr.GetDevices().FirstOrDefault(x => x.DeviceId == 28);
new StirFryGoodsEvent() {
DeviceId = device.DeviceId,
stirFrymessage =frybom
}.Publish();
MessageLog.GetInstance.Show("接受到【MQTT】的小炒流程信息");
}
});

EventBus.EventBus.GetInstance().Subscribe<OrderStatusChangedEvent>(0, OrderStatusChangedHandle);


+ 7
- 1
BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj Ver arquivo

@@ -93,6 +93,8 @@
<None Remove="Image\圆角矩形 30 拷贝.png" />
<None Remove="Image\圆角矩形 4.png" />
<None Remove="Image\圆角矩形.png" />
<None Remove="Image\工艺流程.jpg" />
<None Remove="Image\工艺流程.png" />
<None Remove="Image\底部背景.png" />
<None Remove="Image\搜索按钮.png" />
<None Remove="Image\搜索框.png" />
@@ -173,6 +175,7 @@
<None Remove="Image\顶部切图\Top_L.png" />
<None Remove="Image\顶部切图\窗体背景.png" />
<None Remove="Image\顶部切图\窗体背景2.png" />
<None Remove="Image\顶部切图\自动化产线上位机控制系统.png" />
<None Remove="Image\顶部切图\返回按钮1.png" />
<None Remove="Image\顶部切图\返回按钮2.png" />
<None Remove="Image\顶部切图\返回按钮图标.png" />
@@ -203,6 +206,8 @@
<Resource Include="Image\告警\无告警.png" />
<Resource Include="Image\告警\无告警1.png" />
<Resource Include="Image\告警\轻微告警.png" />
<Resource Include="Image\工艺流程.jpg" />
<Resource Include="Image\工艺流程.png" />
<Resource Include="Image\界面2.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
@@ -221,6 +226,7 @@
<Resource Include="Image\顶部切图\Top_L.png" />
<Resource Include="Image\顶部切图\窗体背景.png" />
<Resource Include="Image\顶部切图\窗体背景2.png" />
<Resource Include="Image\顶部切图\自动化产线上位机控制系统.png" />
<Resource Include="Image\顶部切图\返回按钮1.png" />
<Resource Include="Image\顶部切图\返回按钮2.png" />
<Resource Include="Image\顶部切图\返回按钮图标.png" />
@@ -229,7 +235,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="BPA.Message" Version="1.0.43" />
<PackageReference Include="BPA.Message" Version="1.0.45" />
</ItemGroup>

<ItemGroup>





+ 9
- 1
BPASmartClient.CustomResource/Themes/MyStyle.xaml Ver arquivo

@@ -181,6 +181,14 @@
</Style.Setters>
</Style>

<Style x:Key="imagetop_工艺流程" TargetType="Image">
<Style.Setters>
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="Source" Value="/BPASmartClient.CustomResource;component/Image/工艺流程.png" />
</Style.Setters>
</Style>
<Style x:Key="imagetop_维护" TargetType="Image">
<Style.Setters>
<Setter Property="Width" Value="20" />
@@ -225,7 +233,7 @@
<Setter Property="Width" Value="250" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Source" Value="/BPASmartClient.CustomResource;component/Image/顶部切图/黑菠萝智慧餐饮管理系统.png" />
<Setter Property="Source" Value="/BPASmartClient.CustomResource;component/Image/顶部切图/自动化产线上位机控制系统.png" />
</Style.Setters>
</Style>



+ 1
- 1
BPASmartClient.Device/BPASmartClient.Device.csproj Ver arquivo

@@ -7,7 +7,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="BPA.Message" Version="1.0.43" />
<PackageReference Include="BPA.Message" Version="1.0.45" />
</ItemGroup>

<ItemGroup>


+ 1
- 1
BPASmartClient.Model/BPASmartClient.Model.csproj Ver arquivo

@@ -17,7 +17,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="BPA.Message" Version="1.0.43" />
<PackageReference Include="BPA.Message" Version="1.0.45" />
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
</ItemGroup>



+ 18
- 0
BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs Ver arquivo

@@ -0,0 +1,18 @@
using BPA.Message;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPASmartClient.Model.小炒机
{
public class StirFryGoodsEvent : BaseEvent
{

/// <summary>
/// 小炒信息
/// </summary>
public StirFryPushMessage stirFrymessage { get; set; } = new StirFryPushMessage();
}
}

+ 0
- 4
BPASmartClient.MorkF/BPASmartClient.MorkF.csproj Ver arquivo

@@ -18,8 +18,4 @@
<ProjectReference Include="..\BPASmartClient.Model\BPASmartClient.Model.csproj" />
</ItemGroup>

<ItemGroup>
<Folder Include="Model\" />
</ItemGroup>

</Project>

+ 115
- 107
BPASmartClient.MorkF/Control_MorkF.cs Ver arquivo

@@ -8,18 +8,19 @@ using BPASmartClient.Model;
using BPASmartClient.Model.PLC;
using BPA.Models;
using static BPASmartClient.EventBus.EventBus;

using BPASmartClient.Model.小炒机;
using BPASmartClient.MorkF.Model;

namespace BPASmartClient.MorkF
{
public class Control_MorkF : BaseDevice
{
public override DeviceClientType DeviceType => DeviceClientType.MORKSF;
public override DeviceClientType DeviceType => DeviceClientType.MORKCS;
public AutoResetEvent minorReset = new AutoResetEvent(false);
public AutoResetEvent mainReset = new AutoResetEvent(false);
GVL_MorkF morkF = new GVL_MorkF();//全局对象声明
public StirFryBom stirFryBom = new StirFryBom();//创建获取流程的对象
StirFryGoods stirFryGoods = new StirFryGoods();//创建商品对象
List<StirFryGoods> stirFryGoods = new List<StirFryGoods>();//创建商品对象
List<int> resultorder = new List<int>();//调试变量
/// <summary>
/// 入口
@@ -321,9 +322,9 @@ namespace BPASmartClient.MorkF
{
//队列
string subId = Guid.NewGuid().ToString();
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 1 });//A料
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 2 });//B料
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 3 });//C料
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List<int>() { 1 } });//A料
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List<int>() { 2 } });//B料
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List<int>() { 3 } });//C料
morkF.TakePlateQueue.Enqueue(new OrderLocInfo() { SuborderId = subId });
resultorder.AddRange(new int[] { 1, 2, 3 });
morkF.listStirBom.Add(stirFryBom);
@@ -388,6 +389,7 @@ namespace BPASmartClient.MorkF
if (@event is MaterialDeliveryEvent material)
{
orderMaterialDelivery = material.orderMaterialDelivery;

}
});

@@ -401,6 +403,17 @@ namespace BPASmartClient.MorkF
WriteRecipeBoms();
}
});
//小炒流程信息
EventBus.EventBus.GetInstance().Subscribe<StirFryGoodsEvent>(DeviceId, delegate (IEvent @event, EventCallBackHandle callback)
{
if (@event == null) return;
if (@event is StirFryGoodsEvent stirFry)
{
stirFryGoods = stirFry.stirFrymessage.stirFryGoods;
MessageLog.GetInstance.Show("接收到小炒流程信息");
}
});

}

private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS)
@@ -423,41 +436,34 @@ namespace BPASmartClient.MorkF
if (order.MorkOrder.GoodBatchings == null) return;
OrderCount++;
DeviceProcessLogShow($"接收到{OrderCount}次订单");
foreach (var item in order.MorkOrder.GoodBatchings)

var res = stirFryGoods?.FirstOrDefault(p => p.GoodsKey == order.MorkOrder.RecipeId);//匹配订单对应制作流程
if (res != null)
{
var res = orderMaterialDelivery?.BatchingInfo?.FirstOrDefault(p => p.BatchingId == item.BatchingId);
if (res != null)
morkF.listStirBom.Add(res.StirFryBomInfo);//添加订单制作流程
if (morkF.TakeMaterialQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null)
{
if (ushort.TryParse(res.BatchingLoc, out ushort loc))
{

//if (morkF.TakeMaterialQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null)
//将一个商品的ABC料位置存入队列
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, BatchingId = res.BatchingId, MaterialLoc = ushort.Parse(res.BatchingLoc) });
}

morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.ALoc });
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.BLoc });
morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.CLoc });

}

//int index = 0;
//if (recipeBoms != null)
//{
// index = Array.FindIndex(recipeBoms.RecipeIds?.ToArray(), p => p.RecipeId == order.MorkOrder.RecipeId);
// index++;
//}
if (morkF.TakePlateQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null)
morkF.TakePlateQueue.Enqueue(new OrderLocInfo()
{
SuborderId = order.MorkOrder.SuborderId,
BatchingId = res.BatchingId
//RecipeNumber = (index >= 1 && index <= 10) ? (ushort)index : (ushort)0
});

//foreach (var item in order.MorkOrder.GoodBatchings)
//{
if (morkF.TakePlateQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null)
{
morkF.TakePlateQueue.Enqueue(new OrderLocInfo()
{
SuborderId = order.MorkOrder.SuborderId,

});
}
//}
}
//根据ID 查找对应制作流程,

}

});
}
//}
@@ -572,7 +578,7 @@ namespace BPASmartClient.MorkF
if (morkF.MainProcessWait)
{
if (morkF.MinorHasTakeMaterial)
{
{
}
else
{
@@ -582,7 +588,7 @@ namespace BPASmartClient.MorkF
//阻塞辅流程
minorReset.WaitOne();
}
}
morkF.MinorProessStatus = true;
morkF.MainProcessStatus = false;
@@ -624,13 +630,13 @@ namespace BPASmartClient.MorkF
case StirFryRobotAction.清洗槽取锅:
TakePotTask();//执行取锅操作
break;
case StirFryRobotAction.加入A料:
case StirFryRobotAction.A料:
TakeBurdenATask();//执行取A料操作
break;
case StirFryRobotAction.加入B料:
case StirFryRobotAction.B料:
TakeBurdenATask();//执行取B料操作
break;
case StirFryRobotAction.加入C料:
case StirFryRobotAction.C料:
TakeBurdenCTask();//执行取C料操作
break;
case StirFryRobotAction.灶取锅:
@@ -708,7 +714,7 @@ namespace BPASmartClient.MorkF
//阻塞主流程
mainReset.WaitOne();
}
}
morkF.MinorProessStatus = false;
morkF.MainProcessStatus = true;
@@ -771,27 +777,10 @@ namespace BPASmartClient.MorkF
/// </summary>
private void TurntableControl()
{
//正常轮询
//if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock)
//{
// var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList();

// if (result != null)
// {
// if (ushort.TryParse(result[0].BatchingLoc, out ushort loc))
// {
// TurnMaterialStore(loc);
// DeviceProcessLogShow($"转台转到【{loc}】位置");
// morkF.TurnTableLock = true; //取料完成后置false
// }
// }
// elseDeviceProcessLogShow("未找到可用的物料信息");
//}

//调试代码
if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock)
//模拟订单
if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock && General_Config.SimOrderAllow)
{
// var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList();

if (resultorder != null)
{

@@ -807,6 +796,25 @@ namespace BPASmartClient.MorkF
}

}
//正式订单
if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock)
{
//var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList();
var materialLoc = morkF.TakeMaterialQueue.ElementAt(0).MaterialLoc;
if (materialLoc.Count != 0)
{
TurnMaterialStore(materialLoc[0]);
DeviceProcessLogShow($"转台转到【{materialLoc[0]}】位置");
morkF.TurnTableLock = true; //取料完成后置false

}
else
{
DeviceProcessLogShow("未找到可用的物料信息");
}

}


}

@@ -885,12 +893,12 @@ namespace BPASmartClient.MorkF
if (morkF.MainProcessStatus)
{
morkF.MainProcessPotLoc = morkF.CurrentPutPotLoc;
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到灶台控制");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到灶台控制");
}
if (morkF.MinorProessStatus)
{
morkF.MinorProcessPotLoc = morkF.CurrentPutPotLoc;
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到灶台控制");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到灶台控制");
}
if (morkF.CurrentPutPotLoc == 1)
{
@@ -983,11 +991,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1016,11 +1024,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1064,11 +1072,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1097,11 +1105,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1174,11 +1182,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1207,11 +1215,11 @@ namespace BPASmartClient.MorkF
}
if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order))
{
loc = order.MaterialLoc;
TakeBurden(loc);
loc = order.MaterialLoc[0];
TakeBurden();
TurnReset(loc);//转台复位

DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料");
DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料");
}
//等待取料完成
while (!morkF.TakeMaterialComplete)
@@ -1245,9 +1253,9 @@ namespace BPASmartClient.MorkF
RobotOutMeal();
WriteData("M1.2", false);//供盘复位
if (morkF.MainProcessStatus)
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到清洗台控制");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到清洗台控制");
if (morkF.MinorProessStatus)
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到清洗台控制");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到清洗台控制");

}

@@ -1271,7 +1279,7 @@ namespace BPASmartClient.MorkF
{
CleanModuleControl("Start", 2);
}
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行清洗操作");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行清洗操作");
morkF.MainProcessFlag = false;
minorReset.Set();
}
@@ -1286,7 +1294,7 @@ namespace BPASmartClient.MorkF
{
CleanModuleControl("Start", 2);
}
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行清洗操作");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行清洗操作");
morkF.MinorProcessFlag = false;
mainReset.Set();
}
@@ -1325,9 +1333,9 @@ namespace BPASmartClient.MorkF
/// </summary>
public void TurnDownStatusDetect()
{
int potLoc= TurnMachineOrientControl("Down");
int potLoc = TurnMachineOrientControl("Down");

if (potLoc==1)
if (potLoc == 1)
{
while (!morkF.TurnMachineDownComplete)//等待翻转机下降完成
{
@@ -1335,7 +1343,7 @@ namespace BPASmartClient.MorkF
}
WriteData("M8.3", false);//下降完成复位
}
if (potLoc==2)
if (potLoc == 2)
{
while (!morkF.SecondTurnMachineDownComplete)//等待翻转机下降完成
{
@@ -1354,7 +1362,7 @@ namespace BPASmartClient.MorkF
//}

}
/// <summary>
/// 翻转机上升及状态检测
/// </summary>
@@ -1367,7 +1375,7 @@ namespace BPASmartClient.MorkF
TurnMachineOrientControl("Top");//翻转机上升
if (morkF.MainProcessStatus)
{
if (morkF.MainProcessPotLoc==1)
if (morkF.MainProcessPotLoc == 1)
{
while (!morkF.TurnMachineUpComplete)//等待翻转机上升完成以及取料完成
{
@@ -1392,14 +1400,14 @@ namespace BPASmartClient.MorkF
}
morkF.MainOrderMaterialCom = true;
morkF.MainHasTakeMaterial = false;
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】,配料倒料完成");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】,配料倒料完成");
}
else //辅程准备阻塞
{
morkF.MainProcessWait = true;
}
}
if (morkF.MainProcessPotLoc==2)
if (morkF.MainProcessPotLoc == 2)
{
while (!morkF.SecondTurnMachineUpComplete)//等待翻转机上升完成以及取料完成
{
@@ -1424,12 +1432,12 @@ namespace BPASmartClient.MorkF
}
morkF.MainOrderMaterialCom = true;
morkF.MainHasTakeMaterial = false;
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】,配料倒料完成");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】,配料倒料完成");
}
else //辅流程准备阻塞
{
morkF.MainProcessWait = true;
}
}
}
}
if (morkF.MinorProessStatus)
@@ -1459,14 +1467,14 @@ namespace BPASmartClient.MorkF
}
morkF.MinorOrderMaterialCom = true;
morkF.MinorHasTakeMaterial = false;
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】,配料倒料完成");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】,配料倒料完成");
}
else //主程准备阻塞
{
morkF.MinorProcessWait = true;
}
}
if (morkF.MinorProcessPotLoc==2)
if (morkF.MinorProcessPotLoc == 2)
{
while (!morkF.SecondTurnMachineUpComplete)//等待翻转机上升完成以及取料完成
{
@@ -1491,12 +1499,12 @@ namespace BPASmartClient.MorkF
}
morkF.MinorOrderMaterialCom = true;
morkF.MinorHasTakeMaterial = false;
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】,配料倒料完成");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】,配料倒料完成");
}
else //主流程准备阻塞
{
morkF.MinorProcessWait = true;
}
}
}
}
//if (morkF.MainProcessStatus)//代表主流程执行的操作
@@ -1702,7 +1710,7 @@ namespace BPASmartClient.MorkF
}
FirstPotGears(number);
}
if (morkF.MinorProcessPotLoc==2)
if (morkF.MinorProcessPotLoc == 2)
{
while (!morkF.SecondPotInPlace)
{
@@ -1712,9 +1720,9 @@ namespace BPASmartClient.MorkF
}
}
if (morkF.MainProcessStatus)
DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到灶台控制");
DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到灶台控制");
if (morkF.MinorProessStatus)
DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到灶台控制");
DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到灶台控制");
}
/// <summary>
/// PLC转台控制
@@ -1818,7 +1826,7 @@ namespace BPASmartClient.MorkF
Task.Delay(5).Wait();
}
}
if (morkF.MainProcessPotLoc==2)
if (morkF.MainProcessPotLoc == 2)
{
while (!morkF.SecondPotInPlace)
{
@@ -1832,7 +1840,7 @@ namespace BPASmartClient.MorkF
Task.Delay(5).Wait();
}
}
}
if (morkF.MinorProessStatus)
{
@@ -1876,8 +1884,8 @@ namespace BPASmartClient.MorkF
{
switch (orientation)
{
case "Top": WriteData("M8.0", true); break;
case "Down": WriteData("M8.2", true); break;
case "Top": WriteData("M8.0", true); break;
case "Down": WriteData("M8.2", true); break;
}
}
public void SecondPotTurnMachine(string orientation)
@@ -1895,7 +1903,7 @@ namespace BPASmartClient.MorkF
/// <param name="orientation"></param>
public int TurnMachineOrientControl(string orientation)
{
int potLoc=0; ;
int potLoc = 0; ;
//switch (orientation)
//{
// case "Top": if (morkF.MainProcessStatus) WriteData("M8.0", true); if (morkF.MinorProessStatus) WriteData("M8.4", true); break;
@@ -1911,7 +1919,7 @@ namespace BPASmartClient.MorkF
if (morkF.MainProcessPotLoc == 2)
{
SecondPotTurnMachine(orientation);
potLoc=2;
potLoc = 2;
}
}
if (morkF.MinorProessStatus)
@@ -1971,7 +1979,7 @@ namespace BPASmartClient.MorkF
//}
if (morkF.MainProcessStatus)
{
if (morkF.MainProcessPotLoc==1)
if (morkF.MainProcessPotLoc == 1)
{
FirstPotTurnMachine(gear);
}
@@ -1982,7 +1990,7 @@ namespace BPASmartClient.MorkF
}
if (morkF.MinorProessStatus)
{
if (morkF.MinorProcessPotLoc==1)
if (morkF.MinorProcessPotLoc == 1)
{
FirstPotTurnMachine(gear);
}
@@ -1996,7 +2004,7 @@ namespace BPASmartClient.MorkF
/// <summary>
/// 取A,B,C料
/// </summary>
public void TakeBurden(int loc)
public void TakeBurden()
{
if (morkF.MainProcessStatus && morkF.PotInPlace)
WriteData("M14.1", true);//机器人倒料至1号锅


+ 1
- 0
BPASmartClient.MorkF/GVL_MorkF.cs Ver arquivo

@@ -10,6 +10,7 @@ namespace BPASmartClient.MorkF
{
internal class GVL_MorkF
{
/// <summary>
/// 初始化完成状态
/// </summary>


+ 13
- 0
BPASmartClient.MorkF/Model/General_Config.cs Ver arquivo

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPASmartClient.MorkF.Model
{
internal class General_Config
{
public static bool SimOrderAllow { get; set; }
}
}

+ 1
- 1
BPASmartClient.MorkF/OrderLocInfo.cs Ver arquivo

@@ -9,7 +9,7 @@ namespace BPASmartClient.MorkF
internal class OrderLocInfo
{
public string SuborderId { get; set; }
public ushort MaterialLoc { get; set; }//物料位置
public List<int> MaterialLoc { get; set; } = new List<int>();//物料A位置
public ushort RecipeNumber { get; set; }
public int BatchingId { get; set; }
}

+ 1
- 0
BPASmartClient.MorkF/View/DebugView.xaml Ver arquivo

@@ -36,6 +36,7 @@
<Button Content="供盘" Command="{Binding OutPlate}" Margin="10,0,10,0"></Button>
<Button Content="清洗模组1启动" Command="{Binding StartQXOne}" Margin="10,0,10,0"></Button>
<Button Content="清洗模组2启动" Command="{Binding StartQXTwo}" Margin="10,10,10,0" Cursor="Hand"></Button>
<CheckBox Name="checkValue" Content="运行模拟订单程序" Margin="10,10,10,0" IsChecked="{Binding SimOrderEnable}"></CheckBox>
</WrapPanel>
</GroupBox>
<GroupBox Header="菜品选择" FontSize="15" Foreground="Aqua" Grid.Row="1" Margin="0,0,0,40" VerticalAlignment="Top" Height="100">


+ 1
- 0
BPASmartClient.MorkF/View/DebugView.xaml.cs Ver arquivo

@@ -25,6 +25,7 @@ namespace BPASmartClient.MorkF.View
{
InitializeComponent();
this.DataContext = new DebugViewModel();
}
}
}

+ 4
- 1
BPASmartClient.MorkF/ViewModel/DebugViewModel.cs Ver arquivo

@@ -1,4 +1,5 @@
using BPASmartClient.Helper;
using BPASmartClient.MorkF.Model;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System;
@@ -11,6 +12,7 @@ namespace BPASmartClient.MorkF.ViewModel
{
internal class DebugViewModel : ObservableObject
{
public bool SimOrderEnable { get { return General_Config.SimOrderAllow; } set { General_Config.SimOrderAllow = value; OnPropertyChanged(); } }

public RelayCommand PlcInite { get; set; }
public RelayCommand SimulateOrder { get; set; }
@@ -64,7 +66,8 @@ namespace BPASmartClient.MorkF.ViewModel
public DebugViewModel()
{
PlcInite = new RelayCommand(() => { ActionManage.GetInstance.Send("InitCommand"); });
SimulateOrder = new RelayCommand(() => { ActionManage.GetInstance.Send("SimultaorOrder"); });

SimulateOrder = new RelayCommand(() => {ActionManage.GetInstance.Send("SimultaorOrder"); });
MaterialOne= new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialOne"); });
MaterialTwo = new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialTwo"); });
MaterialThree = new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialThree"); });


+ 3
- 1
BPASmartClient.MorkM/Control_MORKM.cs Ver arquivo

@@ -15,6 +15,7 @@ using BPASmartClient.MorkM.Model;
using System.Collections.ObjectModel;
using BPASmartClient.Model.PLC;
using BPASmartClient.MorkM.ViewModel;
using BPA.Message;

namespace BPASmartClient.MorkM
{
@@ -800,6 +801,7 @@ namespace BPASmartClient.MorkM
}
});


//配方数据信息
EventBus.EventBus.GetInstance().Subscribe<RecipeBomEvent>(DeviceId, delegate (IEvent @event, EventCallBackHandle callBack)
{
@@ -811,7 +813,7 @@ namespace BPASmartClient.MorkM
}
});
}
public override void DoMain()
{
MonitorViewModel.DeviceId = DeviceId;


+ 5
- 1
BPASmartClient.MorkS/Control_Morks.cs Ver arquivo

@@ -18,6 +18,8 @@ using BPASmartClient.MorkS.Model;
using System.Collections.ObjectModel;
using BPASmartClient.MorkS.ViewModel;
using BPASmartClient.Business;
using BPASmartClient.Model.小炒机;
using BPA.Models;

namespace BPASmartClient.MorkS
{
@@ -113,8 +115,10 @@ namespace BPASmartClient.MorkS
WriteRecipeBoms();
}
});
}

private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS)
{
var res = mORKS.doOrderEvents.FirstOrDefault(p => p.MorkOrder.SuborderId == subid);


+ 4
- 4
BPASmartClient/App.config Ver arquivo

@@ -7,14 +7,14 @@
<add key="IsEnableTest" value="false"/>

<!--开发环境-->
<!--<add key="apollouri" value="http://10.2.1.21:28080/"/>
<add key="apollouri" value="http://10.2.1.21:28080/"/>
<add key="AppId" value="dev1_common"/>
<add key ="Namespaces" value="DEV.Config"/>-->
<add key ="Namespaces" value="DEV.Config"/>

<!--正式环境-->
<add key="apollouri" value="http://47.108.65.220:28080/"/>
<!--<add key="apollouri" value="http://47.108.65.220:28080/"/>
<add key="AppId" value="order"/>
<add key ="Namespaces" value="TEST1.Config"/>
<add key ="Namespaces" value="TEST1.Config"/>-->

<!--阿里云上报启动方式:API 或者 LOCAL-->
<!--API :通过客户端ID,调用接口查询“设备连接信息”-->


+ 23
- 0
BPASmartClient/Control/GYLCControl.xaml Ver arquivo

@@ -0,0 +1,23 @@
<UserControl x:Class="BPASmartClient.Control.GYLCControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BPASmartClient.Control"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/BPASmartClient.CustomResource;component/Themes/GenricStyle.xaml" />
<ResourceDictionary Source="/BPASmartClient.CustomResource;component/Themes/MyStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<ScrollViewer>
<Image Style="{DynamicResource imagetop_工艺流程}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">

</Image>
</ScrollViewer>
</UserControl>

+ 28
- 0
BPASmartClient/Control/GYLCControl.xaml.cs Ver arquivo

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace BPASmartClient.Control
{
/// <summary>
/// GYLCControl.xaml 的交互逻辑
/// </summary>
public partial class GYLCControl : UserControl
{
public GYLCControl()
{
InitializeComponent();
}
}
}

+ 7
- 1
BPASmartClient/MainWindow.xaml Ver arquivo

@@ -116,7 +116,7 @@
<MenuItem
Click="Debug_Click"
FontSize="12"
Header="调试"
Header="AGV控制"
Tag="DebugView" />


@@ -152,6 +152,12 @@
Header="IOT监视"
Tag="IOTView" />
<Separator />
<MenuItem
Click="MenuItem_Click"
FontSize="12"
Header="工艺流程"
Tag="GYLCControl" />
<Separator />
</MenuItem>
<MenuItem Header="综合查询">
<MenuItem


+ 1
- 1
DosingSystem/DosingSystem.csproj Ver arquivo

@@ -14,7 +14,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="BPA.Message" Version="1.0.43" />
<PackageReference Include="BPA.Message" Version="1.0.45" />
<PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>


+ 13
- 2
DosingSystem/View/NewRecipeView.xaml Ver arquivo

@@ -139,7 +139,7 @@
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<ComboBox
<!--<ComboBox
Name="cb"
Grid.Column="0"
Margin="3,1"
@@ -153,8 +153,19 @@
ItemsSource="{Binding DataContext.RawMaterialNames, RelativeSource={RelativeSource AncestorType=ItemsControl, Mode=FindAncestor}}"
SelectedIndex="0"
Style="{StaticResource ComboBoxStyle}"
Text="{Binding RawMaterialName}" />
Text="{Binding RawMaterialName}" />-->

<TextBox
Name="cb"
Grid.Column="0"
Margin="3,1"
VerticalAlignment="Center"
BorderBrush="#FF074B92"
BorderThickness="1"
FontFamily="楷体"
FontSize="20"
Foreground="#FF2AB2E7"
Text="{Binding RawMaterialName}" />
<StackPanel
Grid.Column="1"
VerticalAlignment="Center"


Carregando…
Cancelar
Salvar