From 47097ed0960713765e8166b632e38fb76aa155a0 Mon Sep 17 00:00:00 2001
From: ZhaoGang <15196688790@163.com>
Date: Tue, 13 Jun 2023 11:02:57 +0800
Subject: [PATCH] =?UTF-8?q?1.=20=E5=A4=A7=E6=96=99=E7=AB=99=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E7=95=8C=E9=9D=A2?=
=?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0=E6=98=BE=E7=A4=BA?=
=?UTF-8?q?=E6=A0=B7=E5=BC=8F=E3=80=822.=20=E5=B0=8F=E6=96=99=E7=AB=99?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0=E6=98=BE=E7=A4=BA=E6=A0=B7?=
=?UTF-8?q?=E5=BC=8F=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Model/GVL/PlcInfos.cs | 22 ++-
.../Model/GVL/VarCommAttribute.cs | 6 +
.../Model/{ => GVL}/VarMonitor.cs | 0
.../Model/Par/ConnectParMode.cs | 26 +++-
.../Model/Par/LocaPar.cs | 7 +-
.../Model/ProcessControl.cs | 78 +++++++---
.../Model/RawMaterial/AlarmInfo.cs | 3 +
.../Model/RawMaterial/DeviceCurrentStatus.cs | 3 +
.../Model/Recipe/LocalRecipeDataColl.cs | 3 +
.../View/ManualFlowView.xaml | 86 +++--------
.../View/RecipeInfosView.xaml | 4 +-
.../ViewModel/ManualFlowViewModel.cs | 81 +---------
BPASmartClient.JXJFoodBigStation/App.xaml.cs | 7 +
.../View/BomOfMaterialView.xaml | 2 +-
.../View/ManualFlowView.xaml | 2 +-
.../View/ManualFlowView.xaml | 20 ++-
.../View/RobotView.xaml | 142 +++++++++++++-----
.../View/SystemParView.xaml | 8 +-
18 files changed, 275 insertions(+), 225 deletions(-)
rename BPASmartClient.FoodStationTest/Model/{ => GVL}/VarMonitor.cs (100%)
diff --git a/BPASmartClient.FoodStationTest/Model/GVL/PlcInfos.cs b/BPASmartClient.FoodStationTest/Model/GVL/PlcInfos.cs
index f5ff018d..dd463ec8 100644
--- a/BPASmartClient.FoodStationTest/Model/GVL/PlcInfos.cs
+++ b/BPASmartClient.FoodStationTest/Model/GVL/PlcInfos.cs
@@ -2,19 +2,39 @@
namespace BPASmartClient.FoodStationTest.Model.GVL
{
+ ///
+ /// PLC变量信息
+ ///
public class PlcInfos : ObservableObject
{
+ ///
+ /// 变量序号
+ ///
public int Count { get { return _Count; } set { _Count = value; OnPropertyChanged(); } }
private int _Count { get; set; }
-
+ ///
+ /// 变量名称
+ ///
public string Name { get { return _Name; } set { _Name = value; OnPropertyChanged(); } }
private string _Name { get; set; }
+ ///
+ /// 变量地址
+ ///
public string Address { get { return _Address; } set { _Address = value; OnPropertyChanged(); } }
private string _Address { get; set; }
+ ///
+ /// 变量类型
+ ///
public string Type { get { return _Type; } set { _Type = value; OnPropertyChanged(); } }
private string _Type { get; set; }
+ ///
+ /// 变量描述
+ ///
public string Describe { get { return _Describe; } set { _Describe = value; OnPropertyChanged(); } }
private string _Describe { get; set; }
+ ///
+ /// 变量值
+ ///
public string Value { get { return _Value; } set { _Value = value; OnPropertyChanged(); } }
private string _Value { get; set; }
diff --git a/BPASmartClient.FoodStationTest/Model/GVL/VarCommAttribute.cs b/BPASmartClient.FoodStationTest/Model/GVL/VarCommAttribute.cs
index 6e43e369..c0bd98f1 100644
--- a/BPASmartClient.FoodStationTest/Model/GVL/VarCommAttribute.cs
+++ b/BPASmartClient.FoodStationTest/Model/GVL/VarCommAttribute.cs
@@ -10,7 +10,13 @@ namespace BPASmartClient.FoodStationTest.Model.GVL
Address = address;
Describe = des;
}
+ ///
+ /// 变量信息描述。
+ ///
public string Describe { get; set; }
+ ///
+ /// 变量地址
+ ///
public string Address { get; set; }
}
}
diff --git a/BPASmartClient.FoodStationTest/Model/VarMonitor.cs b/BPASmartClient.FoodStationTest/Model/GVL/VarMonitor.cs
similarity index 100%
rename from BPASmartClient.FoodStationTest/Model/VarMonitor.cs
rename to BPASmartClient.FoodStationTest/Model/GVL/VarMonitor.cs
diff --git a/BPASmartClient.FoodStationTest/Model/Par/ConnectParMode.cs b/BPASmartClient.FoodStationTest/Model/Par/ConnectParMode.cs
index 05580961..70a4b703 100644
--- a/BPASmartClient.FoodStationTest/Model/Par/ConnectParMode.cs
+++ b/BPASmartClient.FoodStationTest/Model/Par/ConnectParMode.cs
@@ -2,23 +2,45 @@
namespace BPASmartClient.FoodStationTest.Model.Par
{
+ ///
+ /// 连接参数设置。
+ ///
public class ConnectParMode : ObservableObject
{
-
+ ///
+ /// 海科PLC是否连接
+ ///
public bool HKPlcConnect { get { return _mHKPlcConnect; } set { _mHKPlcConnect = value; OnPropertyChanged(); } }
private bool _mHKPlcConnect;
+ ///
+ /// 是否屏蔽料仓报警
+ ///
public bool ShieldStockbinAlarm { get { return _mShieldStockbinAlarm; } set { _mShieldStockbinAlarm = value; OnPropertyChanged(); } }
private bool _mShieldStockbinAlarm;
-
+ ///
+ /// 进桶侧调速电机速度
+ ///
public short AxisLoadSpeed { get { return _mAxisLoadSpeed; } set { _mAxisLoadSpeed = value; OnPropertyChanged(); } }
private short _mAxisLoadSpeed;
+ ///
+ /// 过度侧调速电机速度
+ ///
public short AxisMidSpeed { get { return _mAxisMidSpeed; } set { _mAxisMidSpeed = value; OnPropertyChanged(); } }
private short _mAxisMidSpeed;
+ ///
+ /// 出桶侧调速电机速度
+ ///
public short AxisUnLoadSpeed { get { return _mAxisUnLoadSpeed; } set { _mAxisUnLoadSpeed = value; OnPropertyChanged(); } }
private short _mAxisUnLoadSpeed;
+ ///
+ /// 进桶侧伺服电机速度
+ ///
public float Axis1Speed { get { return _mAxis1Speed; } set { _mAxis1Speed = value; OnPropertyChanged(); } }
private float _mAxis1Speed;
+ ///
+ /// 出桶侧伺服电机速度
+ ///
public float Axis2Speed { get { return _mAxis2Speed; } set { _mAxis2Speed = value; OnPropertyChanged(); } }
private float _mAxis2Speed;
}
diff --git a/BPASmartClient.FoodStationTest/Model/Par/LocaPar.cs b/BPASmartClient.FoodStationTest/Model/Par/LocaPar.cs
index 9728d0d8..19ea4624 100644
--- a/BPASmartClient.FoodStationTest/Model/Par/LocaPar.cs
+++ b/BPASmartClient.FoodStationTest/Model/Par/LocaPar.cs
@@ -4,6 +4,9 @@ namespace BPASmartClient.FoodStationTest.Model
{
public class LocalPar
{
+ ///
+ /// 本地模拟配方列表。
+ ///
public ObservableCollection Recipes { get; set; } = new ObservableCollection();
///
@@ -15,7 +18,9 @@ namespace BPASmartClient.FoodStationTest.Model
/// 味魔方数量,每个项目应该固定的。
///
public int RawMaterialDeviceNum { get; } = 6;
-
+ ///
+ /// 海科PLC的IP地址。
+ ///
public string HK_PLC_IP { get; }
}
}
diff --git a/BPASmartClient.FoodStationTest/Model/ProcessControl.cs b/BPASmartClient.FoodStationTest/Model/ProcessControl.cs
index 8b7ecaeb..c408a214 100644
--- a/BPASmartClient.FoodStationTest/Model/ProcessControl.cs
+++ b/BPASmartClient.FoodStationTest/Model/ProcessControl.cs
@@ -8,8 +8,8 @@ using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Configuration;
using System.Linq;
+using System.Printing;
using System.Reflection;
using System.Threading;
@@ -17,31 +17,34 @@ namespace BPASmartClient.FoodStationTest.Model
{
public class ProcessControl
{
- private volatile static ProcessControl _Instance;
+ private static volatile ProcessControl _Instance;
public static ProcessControl GetInstance => _Instance ?? (_Instance = new ProcessControl());
- private ProcessControl() { }
+
+ private ProcessControl()
+ { }
///
/// 配方数据
///
public ObservableCollection RemoteRecipes = new ObservableCollection();
+
///
/// 原料的名称和料仓的位置对应
///
public Dictionary RawMaterialsNamePos = new Dictionary();
+
public ObservableCollection RawMaterialsInfo => Json.Data.rawMaterialStockBin;
+
///
/// 配方队列
///
public ConcurrentQueue RecipeQueueTray1 = new ConcurrentQueue();
-
///
/// 物料集合
///
public Dictionary> RecipeQueueTray { get; set; } = new Dictionary>();
-
public HKDeviceStatus HKDevice = new HKDeviceStatus();
public ObservableCollection CommData { get; set; } = new ObservableCollection();
@@ -49,8 +52,7 @@ namespace BPASmartClient.FoodStationTest.Model
public DateTime StockBinAlarmTime = DateTime.Now;
- //public string? HK_PLC_IP = ConfigurationManager.AppSettings["HKPlc_IP"];
- public string? HK_PLC_IP = Json.Data.HK_PLC_IP;
+ public string? HK_PLC_IP => Json.Data.HK_PLC_IP;
public void Init()
{
@@ -115,6 +117,7 @@ namespace BPASmartClient.FoodStationTest.Model
Thread.Sleep(10);
}), "海科PLC实时数据", true);
}
+
///
/// 气缸的传感器值
///
@@ -138,6 +141,7 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.Cylinder_JackInfo[26] = HKDevice.HK_PLC_S7.Read("DB5.DBX4.4").Content;//托盘2_1气缸
GVL_SmallStation.GetInstance.Cylinder_JackInfo[27] = HKDevice.HK_PLC_S7.Read("DB5.DBX4.5").Content;//托盘2_2气缸
}
+
///
/// DB块的变量实时值
///
@@ -198,6 +202,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+
///
/// 小料站和西门子PLC之间的实时数据
///
@@ -235,6 +240,7 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.RobotProgramNum = HKDevice.HK_PLC_S7.Read("DB3.DBB1").Content;
}
}
+
public void CancelOrder()
{
if (GVL_SmallStation.GetInstance.Order_Cancel) //订单取消
@@ -289,6 +295,7 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.OrderCancelStep = 3;
}
break;
+
case 2:
if (HKDevice.HK_PLC_S7.Read("DB3.DBX42." + index1).Content)
{
@@ -299,10 +306,12 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
break;
+
case 3:
// SiemensDevice.Siemens_PLC_S7.Write("DB2201.DBX450.1", true);
GVL_SmallStation.GetInstance.OrderCancelStep = 4;
break;
+
case 4:
// SiemensDevice.Siemens_PLC_S7.Write("DB2201.DBX450.1", false);
@@ -310,6 +319,7 @@ namespace BPASmartClient.FoodStationTest.Model
MessageNotify.GetInstance.ShowRunLog($"队列1,西门子取消订单完成,订单号:{code}");
break;
+
case 9:
App.Current.Dispatcher.Invoke(() =>
{
@@ -321,15 +331,18 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.Order_CancelRecipeCode = "";
GVL_SmallStation.GetInstance.OrderCancelStep = 0;
break;
+
case 20:
GVL_SmallStation.GetInstance.OrderCancelStep = 21;
break;
+
case 21:
GVL_SmallStation.GetInstance.OrderCancelStep = 29;
MessageNotify.GetInstance.ShowRunLog($"队列1,西门子取消订单完成,订单号:{code}");
break;
+
case 29:
App.Current.Dispatcher.Invoke(() =>
{
@@ -345,12 +358,14 @@ namespace BPASmartClient.FoodStationTest.Model
case 30:
GVL_SmallStation.GetInstance.OrderCancelStep = 31;
break;
+
case 31:
GVL_SmallStation.GetInstance.OrderCancelStep = 39;
MessageNotify.GetInstance.ShowRunLog($"西门子取消订单完成,订单号:{code}");
break;
+
case 39:
GVL_SmallStation.GetInstance.Order_Cancel = false;
GVL_SmallStation.GetInstance.Order_CancelRecipeCode = "";
@@ -360,6 +375,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+
///
/// 将配方添加到配方队列中
///
@@ -376,6 +392,7 @@ namespace BPASmartClient.FoodStationTest.Model
{
if (GVL_SmallStation.GetInstance.NotUseSmallStation)
{
+ //查询都不包含此配方
if (RecipeQueueTray[i].Count == 0 && !RecipeQueueTray[0].Contains(data.RecipeCode) && !RecipeQueueTray[1].Contains(data.RecipeCode) && !RecipeQueueTray[2].Contains(data.RecipeCode) && !RecipeQueueTray[3].Contains(data.RecipeCode) && !RecipeQueueTray[4].Contains(data.RecipeCode))
{
RecipeQueueTray[i].Enqueue(data.RecipeCode);
@@ -404,8 +421,8 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.WindSendDosingStatus = 0;
GVL_SmallStation.GetInstance.WindSendDosing = false;
}
-
}
+
///
/// 小料站配料
///
@@ -413,6 +430,7 @@ namespace BPASmartClient.FoodStationTest.Model
{
if (!GVL_SmallStation.GetInstance.NotUseSmallStation)
{
+ //如果使用小料站配料,更新查询5个工位的AGV状态。
for (int i = 0; i < 5; i++)
{
switch (GVL_SmallStation.GetInstance.Tray_AGVLogic[i])
@@ -427,6 +445,7 @@ namespace BPASmartClient.FoodStationTest.Model
MessageNotify.GetInstance.ShowRunLog("AGV到位 发送到位信号给plc");
}
break;
+
case 1:
if (GVL_SmallStation.GetInstance.Station1HaveTray)
@@ -436,6 +455,7 @@ namespace BPASmartClient.FoodStationTest.Model
MessageNotify.GetInstance.ShowRunLog("托盘1有货架");
}
break;
+
case 2:
if (GVL_SmallStation.GetInstance.AGV_GetTray1Finish && GVL_SmallStation.GetInstance.RecipeProcessStatus[i] == 0)
{
@@ -445,6 +465,7 @@ namespace BPASmartClient.FoodStationTest.Model
MessageNotify.GetInstance.ShowRunLog("AGV取托盘1完成,发送给海科信号后1s后复位");
}
break;
+
case 3:
if (HKDevice.HK_PLC_S7.Read("DB4.DBX10." + i).Content)
{
@@ -455,6 +476,7 @@ namespace BPASmartClient.FoodStationTest.Model
MessageNotify.GetInstance.ShowRunLog("AGV取托盘1完成,信号复位");
}
break;
+
default:
break;
}
@@ -482,8 +504,6 @@ namespace BPASmartClient.FoodStationTest.Model
var res = Json.Data.Recipes.FirstOrDefault(p => p.RecipeCode == code);
if (/*SiemensDevice.IsConnected &&*/ !GVL_SmallStation.GetInstance.IsUseLocalRecipe)
{
-
-
MessageNotify.GetInstance.ShowRunLog($"托盘1,配方{res.RecipeName},配料完成,数据反馈给西门子");
}
else
@@ -502,10 +522,9 @@ namespace BPASmartClient.FoodStationTest.Model
}
else
{
- //粉料仓下发配方
+ //粉料仓下发配方并配料。
if (/*GVL_SmallStation.GetInstance.IsUseWindSend &&*/ GVL_SmallStation.GetInstance.WindSendDosing == false /*&& GVL_SmallStation.GetInstance.Tray_AGVLogic[recipeNum] == 2*/)
{
-
}
else
{
@@ -516,6 +535,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+ //上位机下发配方。并检测下发完成。
if (GVL_SmallStation.GetInstance.RecipeProcessStatus[recipeNum] == 0)
{
GVL_SmallStation.GetInstance.RecipeStockBinDosing[recipeNum] = 0;
@@ -525,6 +545,7 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.RecipeProcessStatus[recipeNum] = 1;
MessageNotify.GetInstance.ShowRunLog($"托盘1,配方编号{code},配方号{recipeNum + 1},下发完成");
}
+ //需要等待下位机检测确认正确接收到配方。
bool recipeReceviceFinish = HKDevice.HK_PLC_S7.Read("DB3.DBX4." + recipeNum).Content;
if (recipeReceviceFinish && GVL_SmallStation.GetInstance.RecipeProcessStatus[recipeNum] == 1)
{
@@ -533,11 +554,14 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum] = 0;
MessageNotify.GetInstance.ShowRunLog($"托盘1,配方编号{code},配方号{recipeNum + 1},配方接收完成");
}
+ //下面是配料流程。
if (GVL_SmallStation.GetInstance.RecipeProcessStatus[recipeNum] == 2)
{
- for (byte i = 1; i < 16; i++)
+ //下面是味魔方配料。
+ for (byte i = 1; i <= Json.Data.RawMaterialDeviceNum; i++)
{
int indexArr = -1;
+ //获取配方每个配方的三个桶的位置。
if (GVL_SmallStation.GetInstance.plcReadDataDB3.StockBinAllowIssue[i - 1])
{
switch (recipeNum)
@@ -545,23 +569,29 @@ namespace BPASmartClient.FoodStationTest.Model
case 0:
indexArr = Array.FindIndex(GVL_SmallStation.GetInstance.plcReadDataDB3.Recipe1BarrelPosReserve.ToArray(), p => p == i);
break;
+
case 1:
indexArr = Array.FindIndex(GVL_SmallStation.GetInstance.plcReadDataDB3.Recipe2BarrelPosReserve.ToArray(), p => p == i);
break;
+
case 2:
indexArr = Array.FindIndex(GVL_SmallStation.GetInstance.plcReadDataDB3.Recipe3BarrelPosReserve.ToArray(), p => p == i);
break;
+
case 3:
indexArr = Array.FindIndex(GVL_SmallStation.GetInstance.plcReadDataDB3.Recipe4BarrelPosReserve.ToArray(), p => p == i);
break;
+
case 4:
indexArr = Array.FindIndex(GVL_SmallStation.GetInstance.plcReadDataDB3.Recipe5BarrelPosReserve.ToArray(), p => p == i);
break;
}
if (indexArr >= 0 && GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum].Get16bitValue((byte)i) == false)
{
+ //查找每个料仓对应的重量。
int loc_index = Array.FindIndex(RemoteRecipes.ElementAt(index).RawMaterial.ToArray(), p => p.RawMaterialLocation == i);
float weight = RemoteRecipes.ElementAt(index).RawMaterial.ElementAt(loc_index).RawMaterialWeight * 1000;//单位g转换kg
+ //小于等于0代表这个料仓不需要配料。
if (weight <= 0)
{
if (i >= 1 && i <= 8)
@@ -577,6 +607,7 @@ namespace BPASmartClient.FoodStationTest.Model
GVL_SmallStation.GetInstance.RecipeStockBinDosing[recipeNum] = GVL_SmallStation.GetInstance.RecipeStockBinDosing[recipeNum].SetBitValue((byte)i, false);//配料完成设备写成false
GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum] = GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum].SetBitValue((byte)i, true);//配料完成设备写成false
}
+ //写入重量并开始配料
else
{
if (loc_index >= 0)
@@ -597,10 +628,10 @@ namespace BPASmartClient.FoodStationTest.Model
}
if ((DeviceInquire.GetInstance.GetDevice(i).deviceStatus.RunStatus == 3) && indexArr >= 0 && GVL_SmallStation.GetInstance.RecipeStockBinDosing[recipeNum].Get16bitValue((byte)i))
{
+ //配料完成处理。
int res = Array.FindIndex(RemoteRecipes.ElementAt(index).RawMaterial.ToArray(), p => p.RawMaterialLocation == i);
if (res < 0)
{
-
}
else
{
@@ -608,10 +639,12 @@ namespace BPASmartClient.FoodStationTest.Model
RemoteRecipes.ElementAt(index).RawMaterial.ElementAt(res).Laying_Off_Weight = DeviceInquire.GetInstance.GetDevice(i).deviceStatus.NowWeightFeedback;
bool info = DeviceInquire.GetInstance.GetDevice(i).StatusReset();
MessageNotify.GetInstance.ShowRunLog($"柔性味魔方,托盘1,配方:{recipeName},{i}号仓,配料完成,下料完成重量:{RemoteRecipes.ElementAt(index).RawMaterial.ElementAt(res).Laying_Off_Weight}");
+ //查找配料完成的味魔方的报警偏差限值。
float AlarmRange = Math.Abs(RemoteRecipes.ElementAt(index).RawMaterial.ElementAt(res).Laying_Off_Weight - RemoteRecipes.ElementAt(index).RawMaterial.ElementAt(res).RawMaterialWeight * 1000);
int iIndex = Array.FindIndex(Json.Data.deviceParModels.ToArray(), p => p.MaterialName == DeviceInquire.GetInstance.GetDevice(i).DeviceName);
if (iIndex >= 0)
{
+ //如果偏差过大则报警。
if (Math.Abs(Json.Data.deviceParModels.ElementAt(iIndex).ErrorRange) < AlarmRange)
{
HKDevice.HK_PLC_S7.Write("DB44.DBX3.0", true);
@@ -622,6 +655,7 @@ namespace BPASmartClient.FoodStationTest.Model
});
}
}
+ //对海科PLC写入味魔方配料完成。
if (i >= 1 && i <= 8)
{
string commInfo = HKDevice.HK_PLC_S7.Write("DB4.DBX12." + (i - 1), true).IsSuccess.ToString();
@@ -638,10 +672,13 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+ //配方整体配料完成处理。
bool DosingComple = HKDevice.HK_PLC_S7.Read("DB3.DBX6." + recipeNum).Content;
if ((RTrig.GetInstance("配方配料完成").Start(DosingComple)) || (GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum] > 0 && DosingComple))
{
+ //配方制作完成数量+1
GVL_SmallStation.GetInstance.RecipeDosingCompleNum = GVL_SmallStation.GetInstance.RecipeDosingCompleNum + 1;
+
GVL_SmallStation.GetInstance.StockBinDosingIssue[recipeNum] = 0;
if (GVL_SmallStation.GetInstance.RecipeStockBinDosing[recipeNum] > 0)
{
@@ -661,6 +698,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
GVL_SmallStation.GetInstance.WindSendDosing = false;
+ //移除配方。
App.Current.Dispatcher.Invoke(() =>
{
Json.Data.Recipes.Remove(res);
@@ -689,6 +727,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+
///
/// 料仓的位置和原料名称的对应
///
@@ -706,6 +745,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+
///
/// PLC的DB3变量列表。初始化PLC读取DB块变量以及流程变量数据。
///
@@ -728,8 +768,6 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
-
-
foreach (PropertyInfo item in typeof(GVL_SmallStation).GetProperties())
{
if (Attribute.IsDefined(item, typeof(VarCommAttribute)))
@@ -747,6 +785,7 @@ namespace BPASmartClient.FoodStationTest.Model
}
}
}
+
///
/// 注册需要用到的委托,主要是用于手动控制的。
///
@@ -951,8 +990,6 @@ namespace BPASmartClient.FoodStationTest.Model
ActionManage.GetInstance.Register(new Action(() => { HKDevice.HK_PLC_S7.Write("DB5.DBX5.2", true); }), "StartAxis2Command", true);
ActionManage.GetInstance.Register(new Action(() => { HKDevice.HK_PLC_S7.Write("DB5.DBX5.2", false); }), "StopAxis2Command", true);
-
-
//将本地配方发送到西门子配方里,执行配料
ActionManage.GetInstance.Register(new Action