@@ -1,9 +0,0 @@ | |||||
<?xml version="1.0" encoding="utf-8" ?> | |||||
<configuration> | |||||
<appSettings> | |||||
<add key="RawMaterial_IP" value="107.107.2."/> | |||||
<add key="HKPlc_IP" value="107.107.2.88"/> | |||||
<add key="Siemens_IP" value="107.107.2.200"/> | |||||
<add key="WindSend_IP" value="107.107.2.210"/> | |||||
</appSettings> | |||||
</configuration> |
@@ -35,7 +35,8 @@ namespace BPASmartClient.FoodStationTest | |||||
DataInit(); | DataInit(); | ||||
Init(); | Init(); | ||||
MainView mv = new MainView(); | MainView mv = new MainView(); | ||||
mv.TitleName = "自动化产线-小料站上位机控制系统"; | |||||
//TODO:修改软件名称。 | |||||
mv.TitleName = "自动化产线-上位机控制系统"; | |||||
LoginView lv = new LoginView(); | LoginView lv = new LoginView(); | ||||
var res = lv.ShowDialog(); | var res = lv.ShowDialog(); | ||||
if (res != null && res == true) | if (res != null && res == true) | ||||
@@ -45,7 +46,7 @@ namespace BPASmartClient.FoodStationTest | |||||
} | } | ||||
else | else | ||||
mv.Close(); | mv.Close(); | ||||
GVL_SmallStation.GetInstance.RecipeDosingCompleNum = Json<LocaPar>.Data.RecipeDosingCompleNum; | |||||
GVL_SmallStation.GetInstance.RecipeDosingCompleNum = Json<LocalPar>.Data.RecipeDosingCompleNum; | |||||
MainWindow = mv; | MainWindow = mv; | ||||
} | } | ||||
private async void Init() | private async void Init() | ||||
@@ -60,8 +61,8 @@ namespace BPASmartClient.FoodStationTest | |||||
protected override void OnExit(ExitEventArgs e) | protected override void OnExit(ExitEventArgs e) | ||||
{ | { | ||||
base.OnExit(e); | base.OnExit(e); | ||||
Json<LocaPar>.Data.RecipeDosingCompleNum = GVL_SmallStation.GetInstance.RecipeDosingCompleNum; | |||||
Json<LocaPar>.Save(); | |||||
Json<LocalPar>.Data.RecipeDosingCompleNum = GVL_SmallStation.GetInstance.RecipeDosingCompleNum; | |||||
Json<LocalPar>.Save(); | |||||
Json<LocalRecipeDataColl>.Save(); | Json<LocalRecipeDataColl>.Save(); | ||||
Json<RemoteRecipeDataColl>.Save(); | Json<RemoteRecipeDataColl>.Save(); | ||||
MessageNotify.GetInstance.LogSave(); | MessageNotify.GetInstance.LogSave(); | ||||
@@ -122,13 +123,6 @@ namespace BPASmartClient.FoodStationTest | |||||
ToggleWindowPath = "View.DeviceMaterialParView" | ToggleWindowPath = "View.DeviceMaterialParView" | ||||
}); | }); | ||||
ParSet.Add(new SubMenumodel() | ParSet.Add(new SubMenumodel() | ||||
{ | |||||
SubMenuName = "粉仓参数设置", | |||||
SubMenuPermission = new Permission[] { Permission.管理员 }, | |||||
AssemblyName = "BPASmartClient.FoodStationTest", | |||||
ToggleWindowPath = "View.WindSendParView" | |||||
}); | |||||
ParSet.Add(new SubMenumodel() | |||||
{ | { | ||||
SubMenuName = "系统参数设置", | SubMenuName = "系统参数设置", | ||||
SubMenuPermission = new Permission[] { Permission.管理员 }, | SubMenuPermission = new Permission[] { Permission.管理员 }, | ||||
@@ -183,14 +177,6 @@ namespace BPASmartClient.FoodStationTest | |||||
AssemblyName = "BPASmartClient.FoodStationTest", | AssemblyName = "BPASmartClient.FoodStationTest", | ||||
ToggleWindowPath = "View.ManualFlowView" | ToggleWindowPath = "View.ManualFlowView" | ||||
}); | |||||
ManualControl.Add(new SubMenumodel() | |||||
{ | |||||
SubMenuName = "机器人设备控制", | |||||
SubMenuPermission = new Permission[] { Permission.管理员, Permission.操作员, Permission.技术员 }, | |||||
AssemblyName = "BPASmartClient.FoodStationTest", | |||||
ToggleWindowPath = "View.RobotView" | |||||
}); | }); | ||||
MenuManage.GetInstance.menuModels.Add(new MenuModel() | MenuManage.GetInstance.menuModels.Add(new MenuModel() | ||||
@@ -239,7 +225,7 @@ namespace BPASmartClient.FoodStationTest | |||||
InfoLog.Add(new SubMenumodel() | InfoLog.Add(new SubMenumodel() | ||||
{ | { | ||||
SubMenuName = "调试日志", | SubMenuName = "调试日志", | ||||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员, Permission.技术员 }, | |||||
SubMenuPermission = new Permission[] { Permission.操作员, Permission.管理员, Permission.技术员 }, | |||||
AssemblyName = "BPASmartClient.CustomResource", | AssemblyName = "BPASmartClient.CustomResource", | ||||
ToggleWindowPath = "Pages.View.DebugLogView" | ToggleWindowPath = "Pages.View.DebugLogView" | ||||
}); | }); | ||||
@@ -339,7 +325,7 @@ namespace BPASmartClient.FoodStationTest | |||||
private void DataInit() | private void DataInit() | ||||
{ | { | ||||
//Config.GetInstance.Init(); | //Config.GetInstance.Init(); | ||||
Json<LocaPar>.Read(); | |||||
Json<LocalPar>.Read(); | |||||
Json<DevicePar>.Read(); | Json<DevicePar>.Read(); | ||||
Json<LocalRecipeDataColl>.Read(); | Json<LocalRecipeDataColl>.Read(); | ||||
Json<RemoteRecipeDataColl>.Read(); | Json<RemoteRecipeDataColl>.Read(); | ||||
@@ -16,7 +16,7 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="BPA.Communication" Version="1.0.104" /> | |||||
<PackageReference Include="BPA.Communication" Version="1.0.105" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -30,9 +30,6 @@ | |||||
<Compile Update="View\ManualFlowView.xaml.cs"> | <Compile Update="View\ManualFlowView.xaml.cs"> | ||||
<SubType>Code</SubType> | <SubType>Code</SubType> | ||||
</Compile> | </Compile> | ||||
<Compile Update="View\RobotView.xaml.cs"> | |||||
<SubType>Code</SubType> | |||||
</Compile> | |||||
<Compile Update="View\SelectRecipesView.xaml.cs"> | <Compile Update="View\SelectRecipesView.xaml.cs"> | ||||
<SubType>Code</SubType> | <SubType>Code</SubType> | ||||
</Compile> | </Compile> | ||||
@@ -81,9 +78,6 @@ | |||||
<Page Update="View\RecipeSettingsView.xaml"> | <Page Update="View\RecipeSettingsView.xaml"> | ||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | <XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | ||||
</Page> | </Page> | ||||
<Page Update="View\RobotView.xaml"> | |||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | |||||
</Page> | |||||
<Page Update="View\SiemensRecipeReceiveView.xaml"> | <Page Update="View\SiemensRecipeReceiveView.xaml"> | ||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | <XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | ||||
</Page> | </Page> | ||||
@@ -93,9 +87,6 @@ | |||||
<Page Update="View\SystemParView.xaml"> | <Page Update="View\SystemParView.xaml"> | ||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | <XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | ||||
</Page> | </Page> | ||||
<Page Update="View\WindSendParView.xaml"> | |||||
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> | |||||
</Page> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -1,6 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.GVL | |||||
{ | |||||
public class GVL | |||||
{ | |||||
} | |||||
} |
@@ -1,111 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.GVL | |||||
{ | |||||
public class ReadSmallMaterial | |||||
{ | |||||
/// <summary> | |||||
/// PLC到上位机心跳 | |||||
/// </summary> | |||||
public bool Heart { get; set; } | |||||
public bool Agv1 { get; set; } | |||||
public bool Agv2 { get; set; } | |||||
public bool Agv3 { get; set; } | |||||
public bool Agv4 { get; set; } | |||||
public bool Agv5 { get; set; } | |||||
public bool Agv6 { get; set; } | |||||
/// <summary> | |||||
/// 1#托盘工位占用 | |||||
/// </summary> | |||||
public bool Tray1BeOccupied { get; set; } | |||||
/// <summary> | |||||
/// 2#托盘工位占用 | |||||
/// </summary> | |||||
public bool Tray2BeOccupied { get; set; } | |||||
/// <summary> | |||||
/// 1#托盘工位配料完成 | |||||
/// </summary> | |||||
public bool Tray1MaterialFinish { get; set; } | |||||
/// <summary> | |||||
/// 2#托盘工位配料完成 | |||||
/// </summary> | |||||
public bool Tray2MaterialFinish { get; set; } | |||||
/// <summary> | |||||
/// 接收托盘1配方数据完成 | |||||
/// </summary> | |||||
public bool Tray1ReceiveFinish { get; set; } | |||||
/// <summary> | |||||
/// 接收托盘2配方数据完成 | |||||
/// </summary> | |||||
public bool Tray2ReceiveFinish { get; set; } | |||||
public int Reserve1 { get; set; } | |||||
public int Receive2 { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_1#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray1Barrel1Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_2#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray1Barrel2Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_3#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray1Barrel3Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_4#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray1Barrel4Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_1#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray2Barrel1Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_2#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray2Barrel2Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_3#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray2Barrel3Location { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_4#桶位置反馈 | |||||
/// </summary> | |||||
public float Tray2Barrel4Location { get; set; } | |||||
public int Reserve3 { get; set; } | |||||
public int Receive4 { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_1#桶允许配料 | |||||
/// </summary> | |||||
public float Tray1Barrel1AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_2#桶允许配料 | |||||
/// </summary> | |||||
public float Tray1Barrel2AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_3#桶允许配料 | |||||
/// </summary> | |||||
public float Tray1Barrel3AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘1_4#桶允许配料 | |||||
/// </summary> | |||||
public float Tray1Barrel4AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_1#桶允许配料 | |||||
/// </summary> | |||||
public float Tray2Barrel1AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_2#桶允许配料 | |||||
/// </summary> | |||||
public float Tray2Barrel2AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_3#桶允许配料 | |||||
/// </summary> | |||||
public float Tray2Barrel3AllowDosing { get; set; } | |||||
/// <summary> | |||||
/// 托盘2_4#桶允许配料 | |||||
/// </summary> | |||||
public float Tray2Barrel4AllowDosing { get; set; } | |||||
} | |||||
} |
@@ -1,179 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.GVL | |||||
{ | |||||
public class WriteSmallMaterial | |||||
{ | |||||
/// <summary> | |||||
/// PLC到上位机心跳 | |||||
/// </summary> | |||||
public bool Heart { get; set; } | |||||
public bool Agv1 { get; set; } | |||||
public bool Agv2 { get; set; } | |||||
public bool Agv3 { get; set; } | |||||
public bool Agv4 { get; set; } | |||||
public bool Agv5 { get; set; } | |||||
public bool Agv6 { get; set; } | |||||
public bool Agv7 { get; set; } | |||||
public bool Agv8 { get; set; } | |||||
public bool Agv9 { get; set; } | |||||
public bool Agv10 { get; set; } | |||||
/// <summary> | |||||
/// 下发配方到托盘1 | |||||
/// </summary> | |||||
public bool Tray1IssueRecipe { get; set; } | |||||
/// <summary> | |||||
/// 下发配方到托盘2 | |||||
/// </summary> | |||||
public bool Tray2IssueRecipe { get; set; } | |||||
public int Reserve1 { get; set; } | |||||
public int Receive2 { get; set; } | |||||
public bool Tray1Barrel1IsDosing1; | |||||
public bool Tray1Barrel1IsDosing2; | |||||
public bool Tray1Barrel1IsDosing3; | |||||
public bool Tray1Barrel1IsDosing4; | |||||
public bool Tray1Barrel1IsDosing5; | |||||
public bool Tray1Barrel1IsDosing6; | |||||
public bool Tray1Barrel1IsDosing7; | |||||
public bool Tray1Barrel1IsDosing8; | |||||
public bool Tray1Barrel1IsDosing9; | |||||
public bool Tray1Barrel1IsDosing10; | |||||
public bool Tray1Barrel1IsDosing11; | |||||
public bool Tray1Barrel1IsDosing12; | |||||
public bool Tray1Barrel1IsDosing13; | |||||
public bool Tray1Barrel1IsDosing14; | |||||
public bool Tray1Barrel1IsDosing15; | |||||
public bool Receive3; | |||||
public bool Tray1Barrel2IsDosing1; | |||||
public bool Tray1Barrel2IsDosing2; | |||||
public bool Tray1Barrel2IsDosing3; | |||||
public bool Tray1Barrel2IsDosing4; | |||||
public bool Tray1Barrel2IsDosing5; | |||||
public bool Tray1Barrel2IsDosing6; | |||||
public bool Tray1Barrel2IsDosing7; | |||||
public bool Tray1Barrel2IsDosing8; | |||||
public bool Tray1Barrel2IsDosing9; | |||||
public bool Tray1Barrel2IsDosing10; | |||||
public bool Tray1Barrel2IsDosing11; | |||||
public bool Tray1Barrel2IsDosing12; | |||||
public bool Tray1Barrel2IsDosing13; | |||||
public bool Tray1Barrel2IsDosing14; | |||||
public bool Tray1Barrel2IsDosing15; | |||||
public bool Receive4; | |||||
public bool Tray1Barrel3IsDosing1; | |||||
public bool Tray1Barrel3IsDosing2; | |||||
public bool Tray1Barrel3IsDosing3; | |||||
public bool Tray1Barrel3IsDosing4; | |||||
public bool Tray1Barrel3IsDosing5; | |||||
public bool Tray1Barrel3IsDosing6; | |||||
public bool Tray1Barrel3IsDosing7; | |||||
public bool Tray1Barrel3IsDosing8; | |||||
public bool Tray1Barrel3IsDosing9; | |||||
public bool Tray1Barrel3IsDosing10; | |||||
public bool Tray1Barrel3IsDosing11; | |||||
public bool Tray1Barrel3IsDosing12; | |||||
public bool Tray1Barrel3IsDosing13; | |||||
public bool Tray1Barrel3IsDosing14; | |||||
public bool Tray1Barrel3IsDosing15; | |||||
public bool Receive5; | |||||
public bool Tray1Barrel4IsDosing1; | |||||
public bool Tray1Barrel4IsDosing2; | |||||
public bool Tray1Barrel4IsDosing3; | |||||
public bool Tray1Barrel4IsDosing4; | |||||
public bool Tray1Barrel4IsDosing5; | |||||
public bool Tray1Barrel4IsDosing6; | |||||
public bool Tray1Barrel4IsDosing7; | |||||
public bool Tray1Barrel4IsDosing8; | |||||
public bool Tray1Barrel4IsDosing9; | |||||
public bool Tray1Barrel4IsDosing10; | |||||
public bool Tray1Barrel4IsDosing11; | |||||
public bool Tray1Barrel4IsDosing12; | |||||
public bool Tray1Barrel4IsDosing13; | |||||
public bool Tray1Barrel4IsDosing14; | |||||
public bool Tray1Barrel4IsDosing15; | |||||
public bool Receive6; | |||||
public bool Tray2Barrel1IsDosing1; | |||||
public bool Tray2Barrel1IsDosing2; | |||||
public bool Tray2Barrel1IsDosing3; | |||||
public bool Tray2Barrel1IsDosing4; | |||||
public bool Tray2Barrel1IsDosing5; | |||||
public bool Tray2Barrel1IsDosing6; | |||||
public bool Tray2Barrel1IsDosing7; | |||||
public bool Tray2Barrel1IsDosing8; | |||||
public bool Tray2Barrel1IsDosing9; | |||||
public bool Tray2Barrel1IsDosing10; | |||||
public bool Tray2Barrel1IsDosing11; | |||||
public bool Tray2Barrel1IsDosing12; | |||||
public bool Tray2Barrel1IsDosing13; | |||||
public bool Tray2Barrel1IsDosing14; | |||||
public bool Tray2Barrel1IsDosing15; | |||||
public bool Receive7; | |||||
public bool Tray2Barrel2IsDosing1; | |||||
public bool Tray2Barrel2IsDosing2; | |||||
public bool Tray2Barrel2IsDosing3; | |||||
public bool Tray2Barrel2IsDosing4; | |||||
public bool Tray2Barrel2IsDosing5; | |||||
public bool Tray2Barrel2IsDosing6; | |||||
public bool Tray2Barrel2IsDosing7; | |||||
public bool Tray2Barrel2IsDosing8; | |||||
public bool Tray2Barrel2IsDosing9; | |||||
public bool Tray2Barrel2IsDosing10; | |||||
public bool Tray2Barrel2IsDosing11; | |||||
public bool Tray2Barrel2IsDosing12; | |||||
public bool Tray2Barrel2IsDosing13; | |||||
public bool Tray2Barrel2IsDosing14; | |||||
public bool Tray2Barrel2IsDosing15; | |||||
public bool Receive8; | |||||
public bool Tray2Barrel3IsDosing1; | |||||
public bool Tray2Barrel3IsDosing2; | |||||
public bool Tray2Barrel3IsDosing3; | |||||
public bool Tray2Barrel3IsDosing4; | |||||
public bool Tray2Barrel3IsDosing5; | |||||
public bool Tray2Barrel3IsDosing6; | |||||
public bool Tray2Barrel3IsDosing7; | |||||
public bool Tray2Barrel3IsDosing8; | |||||
public bool Tray2Barrel3IsDosing9; | |||||
public bool Tray2Barrel3IsDosing10; | |||||
public bool Tray2Barrel3IsDosing11; | |||||
public bool Tray2Barrel3IsDosing12; | |||||
public bool Tray2Barrel3IsDosing13; | |||||
public bool Tray2Barrel3IsDosing14; | |||||
public bool Tray2Barrel3IsDosing15; | |||||
public bool Receive9; | |||||
public bool Tray2Barrel4IsDosing1; | |||||
public bool Tray2Barrel4IsDosing2; | |||||
public bool Tray2Barrel4IsDosing3; | |||||
public bool Tray2Barrel4IsDosing4; | |||||
public bool Tray2Barrel4IsDosing5; | |||||
public bool Tray2Barrel4IsDosing6; | |||||
public bool Tray2Barrel4IsDosing7; | |||||
public bool Tray2Barrel4IsDosing8; | |||||
public bool Tray2Barrel4IsDosing9; | |||||
public bool Tray2Barrel4IsDosing10; | |||||
public bool Tray2Barrel4IsDosing11; | |||||
public bool Tray2Barrel4IsDosing12; | |||||
public bool Tray2Barrel4IsDosing13; | |||||
public bool Tray2Barrel4IsDosing14; | |||||
public bool Tray2Barrel4IsDosing15; | |||||
public bool Receive10; | |||||
public int Receive11; | |||||
public bool StockIn1DosingFinish; | |||||
public bool StockIn2DosingFinish; | |||||
public bool StockIn3DosingFinish; | |||||
public bool StockIn4DosingFinish; | |||||
public bool StockIn5DosingFinish; | |||||
public bool StockIn6DosingFinish; | |||||
public bool StockIn7DosingFinish; | |||||
public bool StockIn8DosingFinish; | |||||
public bool StockIn9DosingFinish; | |||||
public bool StockIn10DosingFinish; | |||||
public bool StockIn11DosingFinish; | |||||
public bool StockIn12DosingFinish; | |||||
public bool StockIn13DosingFinish; | |||||
public bool StockIn14DosingFinish; | |||||
public bool StockIn15DosingFinish; | |||||
public bool Receive12; | |||||
} | |||||
} |
@@ -228,11 +228,6 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
public bool[] StockInDosingComple { get; set; } = new bool[15]; | public bool[] StockInDosingComple { get; set; } = new bool[15]; | ||||
[VarComm("Global", "是否使用粉仓配料")] | |||||
/// <summary> | |||||
/// 是否使用粉仓配料 | |||||
/// </summary> | |||||
public bool IsUseWindSend { get; set; } = false; | |||||
[VarComm("Global", "粉仓正在配料")] | [VarComm("Global", "粉仓正在配料")] | ||||
/// <summary> | /// <summary> | ||||
@@ -1,10 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.HK_PLC | |||||
{ | |||||
public class HKDeviceRead | |||||
{ | |||||
public bool HeartBeat { get; set; } | |||||
public bool SystemMode { get; set; } | |||||
public bool SystemStart { get; set; } | |||||
public bool SystemPause { get; set; } | |||||
} | |||||
} |
@@ -1,134 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.HK_PLC | |||||
{ | |||||
public class HKPlcCommAddress | |||||
{ | |||||
#region 海科PLC ==> 上位机 | |||||
/// <summary> | |||||
/// 是否允许配料 | |||||
/// </summary> | |||||
public static string IsAllowDosing { get; set; } = ""; | |||||
/// <summary> | |||||
/// 当前料仓位置 | |||||
/// </summary> | |||||
public static string StockBinLocation { get; set; } = ""; | |||||
/// <summary> | |||||
/// 当前料仓的状态(0:无意义,1:到达接料位置) | |||||
/// </summary> | |||||
public static string StockState { get; set; } = ""; | |||||
#endregion | |||||
#region 上位机 ==> 海科PLC | |||||
/// <summary> | |||||
/// 料仓位置(配置该配方,所需要多个原料桶,每个原料桶有多个料仓位置) | |||||
/// </summary> | |||||
public static string StockBinLocationToPLC { get; set; } = ""; | |||||
/// <summary> | |||||
/// 对应桶号 | |||||
/// </summary> | |||||
public static string BarrelNumToPLC { get; set; } = ""; | |||||
/// <summary> | |||||
/// 当前配料机配料完成 | |||||
/// </summary> | |||||
public static string SingleDosingFinishToPLC { get; set; } = ""; | |||||
/// <summary> | |||||
/// 当前配料料仓的位置 | |||||
/// </summary> | |||||
public static string SingleStockBinLocationToPLC { get; set; } = ""; | |||||
public static string RecipeDosingFinish { get; set; } = ""; | |||||
#endregion | |||||
#region AGV进出站1 | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVApply { get; set; } = "DB3.DBX0.1"; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVIsApply { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站顶升申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVApplyJack { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站顶升申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVIsApplyJack { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 送货完成 | |||||
/// </summary> | |||||
public static string DeliveryAGVFinsih { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 工位上有货架 | |||||
/// </summary> | |||||
public static string StationHaveCargo { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string PickAGVApply { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string PickAGVIsApply { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 取货架完成 | |||||
/// </summary> | |||||
public static string PickCargoAGVFinish { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 取料完成 | |||||
/// </summary> | |||||
public static string PickAGVFinish { get; set; } = ""; | |||||
/// <summary> | |||||
/// 工位上是否有小车 | |||||
/// </summary> | |||||
public static string StationIsExistTray { get; set; } = ""; | |||||
#endregion | |||||
#region AGV进出站2 | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVApplyStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVIsApplyStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站顶升申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVApplyJackStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站顶升申请 | |||||
/// </summary> | |||||
public static string DeliveryAGVIsApplyJackStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 送货完成 | |||||
/// </summary> | |||||
public static string DeliveryAGVFinsihStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 工位上有货架 | |||||
/// </summary> | |||||
public static string StationHaveCargoStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string PickAGVApplyStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 进站申请 | |||||
/// </summary> | |||||
public static string PickAGVIsApplyStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 取货架完成 | |||||
/// </summary> | |||||
public static string PickCargoAGVFinishStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// Agv送货 取料完成 | |||||
/// </summary> | |||||
public static string PickAGVFinishStation2 { get; set; } = ""; | |||||
/// <summary> | |||||
/// 工位上是否有货架 | |||||
/// </summary> | |||||
public static string StationIsExistTrayStation2 { get; set; } = ""; | |||||
#endregion | |||||
} | |||||
} |
@@ -1,12 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model.HK_PLC | |||||
{ | |||||
public class PlcManualComm | |||||
{ | |||||
public int SerialNum { get; set; } | |||||
public string Address { get; set; } | |||||
public string Describe { get; set; } | |||||
public string NowValue { get; set; } | |||||
public string SetValue { get; set; } | |||||
} | |||||
} |
@@ -4,10 +4,7 @@ namespace BPASmartClient.FoodStationTest.Model.Par | |||||
{ | { | ||||
public class ConnectParMode : ObservableObject | public class ConnectParMode : ObservableObject | ||||
{ | { | ||||
public bool SiemensConnect { get { return _mSiemensConnect; } set { _mSiemensConnect = value; OnPropertyChanged(); } } | |||||
private bool _mSiemensConnect; | |||||
public bool WindSendConnect { get { return _mWindSendConnect; } set { _mWindSendConnect = value; OnPropertyChanged(); } } | |||||
private bool _mWindSendConnect; | |||||
public bool HKPlcConnect { get { return _mHKPlcConnect; } set { _mHKPlcConnect = value; OnPropertyChanged(); } } | public bool HKPlcConnect { get { return _mHKPlcConnect; } set { _mHKPlcConnect = value; OnPropertyChanged(); } } | ||||
private bool _mHKPlcConnect; | private bool _mHKPlcConnect; | ||||
public bool ShieldStockbinAlarm { get { return _mShieldStockbinAlarm; } set { _mShieldStockbinAlarm = value; OnPropertyChanged(); } } | public bool ShieldStockbinAlarm { get { return _mShieldStockbinAlarm; } set { _mShieldStockbinAlarm = value; OnPropertyChanged(); } } | ||||
@@ -2,12 +2,20 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model | namespace BPASmartClient.FoodStationTest.Model | ||||
{ | { | ||||
public class LocaPar | |||||
public class LocalPar | |||||
{ | { | ||||
public ObservableCollection<RecipeModel> Recipes { get; set; } = new ObservableCollection<RecipeModel>(); | public ObservableCollection<RecipeModel> Recipes { get; set; } = new ObservableCollection<RecipeModel>(); | ||||
/// <summary> | /// <summary> | ||||
/// 配方完成数目。 | /// 配方完成数目。 | ||||
/// </summary> | /// </summary> | ||||
public int RecipeDosingCompleNum { get; set; } = 0; | public int RecipeDosingCompleNum { get; set; } = 0; | ||||
/// <summary> | |||||
/// 味魔方数量,每个项目应该固定的。 | |||||
/// </summary> | |||||
public int RawMaterialDeviceNum { get; } = 6; | |||||
public string HK_PLC_IP { get; } | |||||
} | } | ||||
} | } |
@@ -41,9 +41,6 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
/// </summary> | /// </summary> | ||||
public Dictionary<int, ConcurrentQueue<string>> RecipeQueueTray { get; set; } = new Dictionary<int, ConcurrentQueue<string>>(); | public Dictionary<int, ConcurrentQueue<string>> RecipeQueueTray { get; set; } = new Dictionary<int, ConcurrentQueue<string>>(); | ||||
public ConcurrentQueue<string> RecipeQueueTray2 = new ConcurrentQueue<string>(); | |||||
public HKDeviceStatus HKDevice = new HKDeviceStatus(); | public HKDeviceStatus HKDevice = new HKDeviceStatus(); | ||||
@@ -52,15 +49,17 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
public DateTime StockBinAlarmTime = DateTime.Now; | public DateTime StockBinAlarmTime = DateTime.Now; | ||||
public string? HK_PLC_IP = ConfigurationManager.AppSettings["HKPlc_IP"]; | |||||
//public string? HK_PLC_IP = ConfigurationManager.AppSettings["HKPlc_IP"]; | |||||
public string? HK_PLC_IP = Json<LocalPar>.Data.HK_PLC_IP; | |||||
public void Init() | public void Init() | ||||
{ | { | ||||
RecipeQueueTray.TryAdd(0, new ConcurrentQueue<string>()); | |||||
RecipeQueueTray.TryAdd(1, new ConcurrentQueue<string>()); | |||||
RecipeQueueTray.TryAdd(2, new ConcurrentQueue<string>()); | |||||
RecipeQueueTray.TryAdd(3, new ConcurrentQueue<string>()); | |||||
RecipeQueueTray.TryAdd(4, new ConcurrentQueue<string>()); | |||||
//初始化物料集合。 | |||||
for (int i = 0; i < 5; i++) | |||||
{ | |||||
RecipeQueueTray.TryAdd(i, new ConcurrentQueue<string>()); | |||||
} | |||||
PlcVarMonitor(); | PlcVarMonitor(); | ||||
StockBinNameWithPos(); | StockBinNameWithPos(); | ||||
RawMaterialNameWithCode(); | RawMaterialNameWithCode(); | ||||
@@ -75,12 +74,14 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
GVL_SmallStation.GetInstance.HeartBeatToPlc = !GVL_SmallStation.GetInstance.HeartBeatToPlc; | GVL_SmallStation.GetInstance.HeartBeatToPlc = !GVL_SmallStation.GetInstance.HeartBeatToPlc; | ||||
HKDevice.HK_PLC_S7.Write("DB4.DBX0.0", GVL_SmallStation.GetInstance.HeartBeatToPlc); | HKDevice.HK_PLC_S7.Write("DB4.DBX0.0", GVL_SmallStation.GetInstance.HeartBeatToPlc); | ||||
GVL_SmallStation.GetInstance.HeartBeatFromPlc = HKDevice.HK_PLC_S7.Read<bool>("DB45.DBX0.0").Content; | GVL_SmallStation.GetInstance.HeartBeatFromPlc = HKDevice.HK_PLC_S7.Read<bool>("DB45.DBX0.0").Content; | ||||
if (DeviceInquire.GetInstance.devices.Count < 15 && HKDevice.IsConnected && Json<RemoteRecipeDataColl>.Data.Recipes.Count > 0 && GVL_SmallStation.GetInstance.DisEnableStockBinAlarm == false && DateTime.Now.Subtract(StockBinAlarmTime).TotalSeconds >= 60 & !GVL_SmallStation.GetInstance.DisEnableStockAlarm) | |||||
if (DeviceInquire.GetInstance.devices.Count < Json<LocalPar>.Data.RawMaterialDeviceNum && HKDevice.IsConnected | |||||
&& Json<RemoteRecipeDataColl>.Data.Recipes.Count > 0 && GVL_SmallStation.GetInstance.DisEnableStockBinAlarm == false | |||||
&& DateTime.Now.Subtract(StockBinAlarmTime).TotalSeconds >= 60 & !GVL_SmallStation.GetInstance.DisEnableStockAlarm) | |||||
{ | { | ||||
HKDevice.HK_PLC_S7.Write("DB44.DBX3.0", true); | HKDevice.HK_PLC_S7.Write("DB44.DBX3.0", true); | ||||
App.Current.Dispatcher.Invoke(() => | App.Current.Dispatcher.Invoke(() => | ||||
{ | { | ||||
MessageNotify.GetInstance.ShowDialog($"未读取到15个柔性味魔方料仓", DialogType.Error); | |||||
MessageNotify.GetInstance.ShowDialog($"未读取到全部柔性味魔方料仓。", DialogType.Error); | |||||
StockBinAlarmTime = DateTime.Now; | StockBinAlarmTime = DateTime.Now; | ||||
}); | }); | ||||
HKDevice.HK_PLC_S7.Write("DB44.DBX3.0", false); | HKDevice.HK_PLC_S7.Write("DB44.DBX3.0", false); | ||||
@@ -502,7 +503,7 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
else | else | ||||
{ | { | ||||
//粉料仓下发配方 | //粉料仓下发配方 | ||||
if (GVL_SmallStation.GetInstance.IsUseWindSend && GVL_SmallStation.GetInstance.WindSendDosing == false /*&& GVL_SmallStation.GetInstance.Tray_AGVLogic[recipeNum] == 2*/) | |||||
if (/*GVL_SmallStation.GetInstance.IsUseWindSend &&*/ GVL_SmallStation.GetInstance.WindSendDosing == false /*&& GVL_SmallStation.GetInstance.Tray_AGVLogic[recipeNum] == 2*/) | |||||
{ | { | ||||
} | } | ||||
@@ -675,9 +676,12 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 复位所有料仓。 | |||||
/// </summary> | |||||
private void StockBinInit() | private void StockBinInit() | ||||
{ | { | ||||
for (int i = 1; i < 16; i++) | |||||
for (int i = 1; i <= Json<LocalPar>.Data.RawMaterialDeviceNum; i++) | |||||
{ | { | ||||
if (DeviceInquire.GetInstance.GetDevice(i).deviceStatus.RunStatus == 3) | if (DeviceInquire.GetInstance.GetDevice(i).deviceStatus.RunStatus == 3) | ||||
{ | { | ||||
@@ -703,7 +707,7 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
} | } | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||
/// PLC的DB3变量列表 | |||||
/// PLC的DB3变量列表。初始化PLC读取DB块变量以及流程变量数据。 | |||||
/// </summary> | /// </summary> | ||||
public void PlcVarMonitor() | public void PlcVarMonitor() | ||||
{ | { | ||||
@@ -743,6 +747,9 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
} | } | ||||
} | } | ||||
} | } | ||||
/// <summary> | |||||
/// 注册需要用到的委托,主要是用于手动控制的。 | |||||
/// </summary> | |||||
public void RegisterInit() | public void RegisterInit() | ||||
{ | { | ||||
//手动控制气缸 DB5.DBX0.0~DB5.DBX4.5 | //手动控制气缸 DB5.DBX0.0~DB5.DBX4.5 | ||||
@@ -1107,6 +1114,9 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
}), "RobotSetProgramNum", true); | }), "RobotSetProgramNum", true); | ||||
} | } | ||||
/// <summary> | |||||
/// 连接海科PLC,并开启重连线程。 | |||||
/// </summary> | |||||
public void DeviceConnect() | public void DeviceConnect() | ||||
{ | { | ||||
try | try | ||||
@@ -1,22 +0,0 @@ | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.FoodStationTest.Model | |||||
{ | |||||
public class ActionMenu : ObservableObject | |||||
{ | |||||
public string CommandParameter { get { return _mCommandParameter; } set { _mCommandParameter = value; OnPropertyChanged(); } } | |||||
private string _mCommandParameter; | |||||
//public Permission[] permission { get { return _mpermission; } set { _mpermission = value; OnPropertyChanged(); } } | |||||
//private Permission[] _mpermission; | |||||
public string MenuName { get { return _mMenuName; } set { _mMenuName = value; OnPropertyChanged(); } } | |||||
private string _mMenuName; | |||||
//public string NameSpace { get { return _mNameSpace; } set { _mNameSpace = value; OnPropertyChanged(); } } | |||||
//private string _mNameSpace; | |||||
} | |||||
} |
@@ -1,10 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model | |||||
{ | |||||
public class ConveyorServer | |||||
{ | |||||
public ConveyorServer() | |||||
{ | |||||
} | |||||
} | |||||
} |
@@ -1,22 +0,0 @@ | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.FoodStationTest.Model | |||||
{ | |||||
public class CylinderStatusModel : ObservableObject | |||||
{ | |||||
/// <summary> | |||||
/// 气缸原点信号 | |||||
/// </summary> | |||||
public bool HomeStatus { get { return _mHomeStatus; } set { _mHomeStatus = value; OnPropertyChanged(); } } | |||||
private bool _mHomeStatus; | |||||
/// <summary> | |||||
/// 气缸到位信号 | |||||
/// </summary> | |||||
public bool InPlace { get { return _mInPlace; } set { _mInPlace = value; OnPropertyChanged(); } } | |||||
private bool _mInPlace; | |||||
} | |||||
} |
@@ -1,5 +1,8 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model | namespace BPASmartClient.FoodStationTest.Model | ||||
{ | { | ||||
/// <summary> | |||||
/// 味魔法通讯地址。 | |||||
/// </summary> | |||||
public class DeviceAddress | public class DeviceAddress | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
@@ -20,6 +20,7 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
public static DeviceInquire GetInstance => _Instance ?? (_Instance = new DeviceInquire()); | public static DeviceInquire GetInstance => _Instance ?? (_Instance = new DeviceInquire()); | ||||
private DeviceInquire() { } | private DeviceInquire() { } | ||||
//代码片段。 | |||||
string IPSegment = "107.107.2."; | string IPSegment = "107.107.2."; | ||||
ConcurrentDictionary<string, DeviceStatus> DeviceLists = new ConcurrentDictionary<string, DeviceStatus>(); | ConcurrentDictionary<string, DeviceStatus> DeviceLists = new ConcurrentDictionary<string, DeviceStatus>(); | ||||
@@ -158,16 +159,10 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
{ | { | ||||
IPLists.Clear(); | IPLists.Clear(); | ||||
IPQueues.Clear(); | IPQueues.Clear(); | ||||
/* for (int i = 1; i <= 255; i++) | |||||
{ | |||||
if (!InvalidIP.Contains($"{IPSegment}{i}") && !DeviceLists.ContainsKey($"{IPSegment}{i}")) | |||||
{ | |||||
IPLists.Add($"{IPSegment}{i}"); | |||||
} | |||||
}*/ | |||||
//吉香居特定IP | |||||
for (int i = 0; i < 15; i++) | |||||
for (int i = 0; i < Json<LocalPar>.Data.RawMaterialDeviceNum; i++) | |||||
{ | { | ||||
//这里“69”是味魔方起始地址。 | |||||
//TODO:修改起始地址。 | |||||
IPLists.Add($"{IPSegment}{i + 69}"); | IPLists.Add($"{IPSegment}{i + 69}"); | ||||
} | } | ||||
@@ -214,13 +209,13 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
BottomDeviceCurrentStatuses.Add(new DeviceCurrentStatus() { DeviceName = DeviceName }); | BottomDeviceCurrentStatuses.Add(new DeviceCurrentStatus() { DeviceName = DeviceName }); | ||||
for (int i = 0; i < Json<LocaPar>.Data.Recipes.Count; i++) | |||||
for (int i = 0; i < Json<LocalPar>.Data.Recipes.Count; i++) | |||||
{ | { | ||||
for (int m = 0; m < Json<LocaPar>.Data.Recipes.ElementAt(i).RawMaterials.Count; m++) | |||||
for (int m = 0; m < Json<LocalPar>.Data.Recipes.ElementAt(i).RawMaterials.Count; m++) | |||||
{ | { | ||||
if (Json<LocaPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).DeviceIp == ip) | |||||
if (Json<LocalPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).DeviceIp == ip) | |||||
{ | { | ||||
Json<LocaPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).RawMaterialName = DeviceName; | |||||
Json<LocalPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).RawMaterialName = DeviceName; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -320,7 +315,10 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
#region 对象属性声明 | #region 对象属性声明 | ||||
public string DeviceName = String.Empty; | public string DeviceName = String.Empty; | ||||
public string IpAddress = "172.16.0.200"; | |||||
/// <summary> | |||||
/// ModbusTcp的地址。 | |||||
/// </summary> | |||||
public string IpAddress=> modbusTcp.GetConfigPar().IpAddress; | |||||
/// <summary> | /// <summary> | ||||
/// 设备状态 | /// 设备状态 | ||||
/// </summary> | /// </summary> | ||||
@@ -330,7 +328,7 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
public ModbusTcp modbusTcp = new ModbusTcp(); | public ModbusTcp modbusTcp = new ModbusTcp(); | ||||
public bool IsConnected => modbusTcp.IsReconnect; | |||||
public bool IsConnected => modbusTcp.IsConnected(); | |||||
#endregion | #endregion | ||||
public void Init(string DeviceName) | public void Init(string DeviceName) | ||||
@@ -407,7 +405,10 @@ namespace BPASmartClient.FoodStationTest.Model | |||||
ThreadManage.GetInstance().StopTask($"{DeviceName} 开始监听"); | ThreadManage.GetInstance().StopTask($"{DeviceName} 开始监听"); | ||||
} | } | ||||
/// <summary> | |||||
/// 写入重量数据,开始配料。 | |||||
/// </summary> | |||||
/// <param name="Value">配料重量。</param> | |||||
public void Start(float Value) | public void Start(float Value) | ||||
{ | { | ||||
@@ -1,7 +0,0 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model | |||||
{ | |||||
public class GlobalData | |||||
{ | |||||
} | |||||
} |
@@ -1,15 +0,0 @@ | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
namespace BPASmartClient.FoodStationTest.Model | |||||
{ | |||||
public class RecipeProcess : ObservableObject | |||||
{ | |||||
public string RawMaterialName { get { return _mRawMaterialName; } set { _mRawMaterialName = value; OnPropertyChanged(); } } | |||||
private string _mRawMaterialName; | |||||
public int RawMaterialStatus { get { return _mRawMaterialStatus; } set { _mRawMaterialStatus = value; OnPropertyChanged(); } } | |||||
private int _mRawMaterialStatus; | |||||
} | |||||
} |
@@ -3,6 +3,10 @@ using System.Collections.ObjectModel; | |||||
namespace BPASmartClient.FoodStationTest.Model | namespace BPASmartClient.FoodStationTest.Model | ||||
{ | { | ||||
/// <summary> | |||||
/// 远程配方数据。 | |||||
/// </summary> | |||||
public class RemoteRecipeData : ObservableObject | public class RemoteRecipeData : ObservableObject | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
@@ -2,10 +2,12 @@ | |||||
namespace BPASmartClient.FoodStationTest.Model | namespace BPASmartClient.FoodStationTest.Model | ||||
{ | { | ||||
/// <summary> | |||||
/// 远程配方数据集合。 | |||||
/// </summary> | |||||
public class RemoteRecipeDataColl | public class RemoteRecipeDataColl | ||||
{ | { | ||||
public ObservableCollection<RemoteRecipeData> Recipes { get; set; } = new ObservableCollection<RemoteRecipeData>(); | public ObservableCollection<RemoteRecipeData> Recipes { get; set; } = new ObservableCollection<RemoteRecipeData>(); | ||||
public int RecipesStatus { get; set; } | |||||
} | } | ||||
} | } |
@@ -91,7 +91,7 @@ | |||||
Foreground="#FF0084FF" | Foreground="#FF0084FF" | ||||
Text=" 号仓" /> | Text=" 号仓" /> | ||||
</StackPanel> | </StackPanel> | ||||
<StackPanel | <StackPanel | ||||
Grid.Row="1" | Grid.Row="1" | ||||
Margin="0,70,0,0" | Margin="0,70,0,0" | ||||
@@ -121,17 +121,14 @@ | |||||
<!--#endregion--> | <!--#endregion--> | ||||
<Grid x:Name="gr" Grid.Row="1"> | <Grid x:Name="gr" Grid.Row="1"> | ||||
<pry:ConveyorBelt | |||||
Grid.Row="1" | |||||
Width="{Binding ElementName=gr, Path=ActualWidth}" | |||||
Height="{Binding ElementName=gr, Path=ActualHeight}" | |||||
Margin="10,0,400,0" | |||||
ConveyorBeltWidth="70" | |||||
Direction="0" | |||||
StrokeBrush="#00BEFA" | |||||
StrokeDashArray="1.5 1.5" | |||||
StrokeFillBrush="#00BEFA" | |||||
StrokeThickness="2" /> | |||||
<pry:ConveyBelt2 | |||||
BeltDashOffset="100" | |||||
BeltDashThickess="62" | |||||
BeltDirection="0" | |||||
BeltHeight="70" | |||||
Margin="0,150,0,0" | |||||
BeltWidth="{Binding ElementName=gr, Path=ActualWidth}" | |||||
IsRun="True" /> | |||||
</Grid> | </Grid> | ||||
<!--#region 底部料仓--> | <!--#region 底部料仓--> | ||||
@@ -432,7 +432,7 @@ | |||||
FontSize="16" | FontSize="16" | ||||
Foreground="Aqua" | Foreground="Aqua" | ||||
Text="升降气缸控制" /> | Text="升降气缸控制" /> | ||||
<ListView | |||||
<ListView VerticalAlignment="Center" | |||||
Grid.Row="1" | Grid.Row="1" | ||||
Background="Transparent" | Background="Transparent" | ||||
BorderBrush="#00BEFA" | BorderBrush="#00BEFA" | ||||
@@ -168,19 +168,7 @@ | |||||
</StackPanel> | </StackPanel> | ||||
</StackPanel> | </StackPanel> | ||||
<WrapPanel Grid.Row="0"> | <WrapPanel Grid.Row="0"> | ||||
<TextBlock | |||||
Margin="10,0,5,0" | |||||
VerticalAlignment="Center" | |||||
FontSize="25" | |||||
Foreground="#FF2AB2E7" | |||||
Text="西门子 连接状态:" /> | |||||
<TextBlock | |||||
Margin="10" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="25" | |||||
Foreground="#FF2AB2E7" | |||||
Text="{Binding SiemensIsConnect}" /> | |||||
<TextBlock | <TextBlock | ||||
Margin="10,0,5,0" | Margin="10,0,5,0" | ||||
VerticalAlignment="Center" | VerticalAlignment="Center" | ||||
@@ -194,19 +182,7 @@ | |||||
FontSize="25" | FontSize="25" | ||||
Foreground="#FF2AB2E7" | Foreground="#FF2AB2E7" | ||||
Text="{Binding HKPlcIsConnect}" /> | Text="{Binding HKPlcIsConnect}" /> | ||||
<TextBlock | |||||
Margin="10,0,5,0" | |||||
VerticalAlignment="Center" | |||||
FontSize="25" | |||||
Foreground="#FF2AB2E7" | |||||
Text="风送plc连接状态:" /> | |||||
<TextBlock | |||||
Margin="10" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="25" | |||||
Foreground="#FF2AB2E7" | |||||
Text="{Binding WindSendIsConnect}" /> | |||||
</WrapPanel> | </WrapPanel> | ||||
<WrapPanel Grid.Row="2"> | <WrapPanel Grid.Row="2"> | ||||
<TextBlock | <TextBlock | ||||
@@ -60,16 +60,7 @@ | |||||
FontSize="20" | FontSize="20" | ||||
Foreground="Aqua" | Foreground="Aqua" | ||||
IsChecked="{Binding NotUseSmallDosing}" /> | IsChecked="{Binding NotUseSmallDosing}" /> | ||||
<CheckBox | |||||
x:Name="IsUseWindSend" | |||||
Margin="0,0,10,0" | |||||
VerticalAlignment="Center" | |||||
VerticalContentAlignment="Center" | |||||
Content="使用粉料仓配料" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Foreground="Aqua" | |||||
IsChecked="{Binding IsUseWindSendDosing}" /> | |||||
<CheckBox | <CheckBox | ||||
x:Name="IsUseStockBin" | x:Name="IsUseStockBin" | ||||
VerticalAlignment="Center" | VerticalAlignment="Center" | ||||
@@ -11,7 +11,6 @@ namespace BPASmartClient.FoodStationTest.View | |||||
public RecipeReceiveView() | public RecipeReceiveView() | ||||
{ | { | ||||
InitializeComponent(); | InitializeComponent(); | ||||
this.IsUseWindSend.Click += (o, e) => { GVL_SmallStation.GetInstance.IsUseWindSend = (bool)IsUseWindSend.IsChecked; }; | |||||
this.IsUseStockBin.Click += (o, e) => { GVL_SmallStation.GetInstance.IsUseLocalRecipe = (bool)IsUseStockBin.IsChecked; }; | this.IsUseStockBin.Click += (o, e) => { GVL_SmallStation.GetInstance.IsUseLocalRecipe = (bool)IsUseStockBin.IsChecked; }; | ||||
this.NotUseSmallDosing.Click += (o, e) => { GVL_SmallStation.GetInstance.NotUseSmallStation = (bool)NotUseSmallDosing.IsChecked; }; | this.NotUseSmallDosing.Click += (o, e) => { GVL_SmallStation.GetInstance.NotUseSmallStation = (bool)NotUseSmallDosing.IsChecked; }; | ||||
@@ -1,308 +0,0 @@ | |||||
<UserControl x:Class="BPASmartClient.FoodStationTest.View.RobotView" | |||||
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:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | |||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:vm="clr-namespace:BPASmartClient.FoodStationTest.ViewModel" | |||||
mc:Ignorable="d" | |||||
d:DesignHeight="1080" d:DesignWidth="1920"> | |||||
<UserControl.Resources> | |||||
<Style x:Key="radioButtonStyle" TargetType="RadioButton"> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="RadioButton"> | |||||
<Grid Name="gr" Opacity="0.8"> | |||||
<ContentControl | |||||
Margin="{TemplateBinding Margin}" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
HorizontalContentAlignment="Center" | |||||
VerticalContentAlignment="Center" | |||||
Content="{TemplateBinding Content}" | |||||
FontSize="{TemplateBinding FontSize}" | |||||
Foreground="{TemplateBinding Foreground}" /> | |||||
<Image | |||||
Name="image" | |||||
Source="/BPASmartClient.CustomResource;component/Image/边框线.png" | |||||
Stretch="Fill" /> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsChecked" Value="False"> | |||||
<Setter TargetName="image" Property="Source" Value="/BPASmartClient.CustomResource;component/Image/边框线.png" /> | |||||
</Trigger> | |||||
<Trigger Property="IsChecked" Value="True"> | |||||
<Setter TargetName="image" Property="Source" Value="/BPASmartClient.CustomResource;component/Image/透明背景.png" /> | |||||
</Trigger> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter TargetName="gr" Property="Opacity" Value="1" /> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
</UserControl.Resources> | |||||
<UserControl.DataContext> | |||||
<vm:RobotViewModel/> | |||||
</UserControl.DataContext> | |||||
<Grid Margin="10"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="4*"/> | |||||
<ColumnDefinition Width="4*"/> | |||||
<ColumnDefinition Width="4*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<!--#region 表格标题栏设置--> | |||||
<Grid> | |||||
<StackPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人自动运行模式:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsAutoMode}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人正在自动运行:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsAutoRun}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人停止状态:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsStop}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人运行正常:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsRun}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人运行故障:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsAlarm}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人在Home点:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotIsHomed}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="机器人运行的程序号:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding IsRunProgramNum}"></TextBlock> | |||||
</WrapPanel> | |||||
<!--<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="抓空桶完成:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotGetEmptyBarrelComplete}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="放空桶完成:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotPutEmptyBarrelComplete}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="抓满桶完成:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotGetFullBarrelComplete}"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="放满桶完成:"></TextBlock> | |||||
<TextBlock Margin="5" FontSize="22" Foreground="Aqua" Text="{Binding RobotPutFullBarrelComplete}"></TextBlock> | |||||
</WrapPanel>--> | |||||
</StackPanel> | |||||
</Grid> | |||||
<Grid Grid.Column="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="1*"></RowDefinition> | |||||
<RowDefinition Height="7*"></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Button | |||||
Margin="20,15" | |||||
Command="{Binding SystemStart}" | |||||
Content="启动" | |||||
FontSize="40" | |||||
Background="LightGreen"></Button> | |||||
<Button | |||||
Grid.Column="1" | |||||
Margin="20,15" | |||||
Command="{Binding SystemStop}" | |||||
Content="停止" | |||||
FontSize="40" | |||||
Background="OrangeRed"></Button> | |||||
<Button | |||||
Grid.Column="2" | |||||
Grid.ColumnSpan="2" | |||||
Margin="20,15" | |||||
Command="{Binding EStopReset}" | |||||
Content="急停复位" | |||||
FontSize="40" | |||||
Background="DodgerBlue"></Button> | |||||
</Grid> | |||||
</Grid> | |||||
<!--<Grid Grid.Column="2"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Button | |||||
Margin="20,5" | |||||
Command="{Binding AutoMode}" | |||||
Content="自动模式" | |||||
FontSize="32" | |||||
Panel.ZIndex="0" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
<Button | |||||
Grid.Column="1" | |||||
Margin="20,5" | |||||
Command="{Binding TestMode}" | |||||
Content="测试模式" | |||||
FontSize="32" | |||||
Panel.ZIndex="0" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
<Grid Grid.Row="1" Grid.ColumnSpan="2"> | |||||
<StackPanel Orientation="Vertical"> | |||||
<WrapPanel Orientation="Horizontal"> | |||||
<TextBlock Text="机器人正在运行程序号:" Foreground="#FF2AB2E7" FontSize="25" Margin="10" HorizontalAlignment="Left"></TextBlock> | |||||
<TextBlock Text="{Binding IsRunProgramNum}" Foreground="#FF2AB2E7" FontSize="25" Margin="10" HorizontalAlignment="Left" TextAlignment="Center"></TextBlock> | |||||
</WrapPanel> | |||||
<WrapPanel Orientation="Horizontal" VerticalAlignment="Center"> | |||||
<TextBlock Text="机器人需要运行程序号:" Foreground="#FF2AB2E7" FontSize="25" Margin="10" HorizontalAlignment="Left"></TextBlock> | |||||
<TextBox Text="{Binding SetProgramNum}" Width="50" Foreground="#FF2AB2E7" FontSize="25" Margin="10" HorizontalAlignment="Left" TextAlignment="Center"></TextBox> | |||||
<Button FontSize="20" Height="40" Command="{Binding SetProgramNumCommand}" Content="设置" Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</WrapPanel> | |||||
</StackPanel> | |||||
</Grid> | |||||
<Button | |||||
Grid.Row="2" | |||||
Margin="20,5" | |||||
Command="{Binding TestRobotRun}" | |||||
Content="测试抓桶程序" | |||||
FontSize="32" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</Grid> | |||||
--><!--<ListView | |||||
Grid.Row="1" | |||||
Background="Transparent" | |||||
BorderBrush="#00BEFA" | |||||
BorderThickness="0" | |||||
ItemsSource="{Binding cylinderModels}" | |||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"> | |||||
<ListView.ItemsPanel> | |||||
<ItemsPanelTemplate> | |||||
<UniformGrid | |||||
HorizontalAlignment="Left" | |||||
VerticalAlignment="Top" | |||||
Columns="8" /> | |||||
</ItemsPanelTemplate> | |||||
</ListView.ItemsPanel> | |||||
<ListView.ItemTemplate> | |||||
<DataTemplate> | |||||
<Grid | |||||
Width="200" | |||||
Height="100" | |||||
Margin="0,0,0,15" | |||||
Background="Transparent"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="30" /> | |||||
<RowDefinition /> | |||||
<RowDefinition Height="30" /> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="0.5*" /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock | |||||
Grid.Column="1" | |||||
Grid.ColumnSpan="2" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
Foreground="Aqua" | |||||
Text="{Binding Name}" /> | |||||
<pry:Cylinder | |||||
Grid.Row="1" | |||||
Grid.ColumnSpan="3" | |||||
Width="200" | |||||
Height="50" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
LeftTogIsChecked="{Binding LeftTog}" | |||||
RightTogIsChecked="{Binding RightTog}" /> | |||||
<RadioButton | |||||
Grid.Row="2" | |||||
Grid.Column="1" | |||||
Command="{Binding DataContext.Open, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding Name}" | |||||
Content="伸出" | |||||
Foreground="Aqua" | |||||
IsChecked="True" | |||||
Style="{StaticResource radioButtonStyle}" /> | |||||
<RadioButton | |||||
Grid.Row="2" | |||||
Grid.Column="2" | |||||
Command="{Binding DataContext.Close, RelativeSource={RelativeSource AncestorType=ListView, Mode=FindAncestor}}" | |||||
CommandParameter="{Binding Name}" | |||||
Content="缩回" | |||||
Foreground="Aqua" | |||||
IsChecked="False" | |||||
Style="{StaticResource radioButtonStyle}" /> | |||||
</Grid> | |||||
</DataTemplate> | |||||
</ListView.ItemTemplate> | |||||
</ListView>--><!-- | |||||
<Grid Grid.Row="1" Visibility="Hidden"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
<ColumnDefinition></ColumnDefinition> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition></RowDefinition> | |||||
<RowDefinition></RowDefinition> | |||||
</Grid.RowDefinitions> | |||||
<Grid Grid.Row="0"> | |||||
<Button | |||||
Margin="20,5" | |||||
Command="{Binding RobotGetEmptyBarrel}" | |||||
Content="允许机器人抓空桶" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</Grid> | |||||
<Grid Grid.Column="1"> | |||||
<Button | |||||
Margin="20,5" | |||||
Command="{Binding RobotPutEmptyBarrel}" | |||||
Content="允许机器人放空桶" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</Grid> | |||||
<Grid Grid.Row="1"> | |||||
<Button | |||||
Margin="20,5" | |||||
Command="{Binding RobotGetFullBarrel}" | |||||
Content="允许机器人抓满桶" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</Grid> | |||||
<Grid Grid.Row="1" Grid.Column="1"> | |||||
<Button | |||||
Margin="20,5" | |||||
Command="{Binding RobotPutFullBarrel}" | |||||
Content="允许机器人放满桶" | |||||
Style="{StaticResource ImageButtonStyle}"></Button> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid>--> | |||||
</Grid> | |||||
</UserControl> |
@@ -1,15 +0,0 @@ | |||||
using System.Windows.Controls; | |||||
namespace BPASmartClient.FoodStationTest.View | |||||
{ | |||||
/// <summary> | |||||
/// HKPlcCommMonitor.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class RobotView : UserControl | |||||
{ | |||||
public RobotView() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
} | |||||
} |
@@ -159,22 +159,8 @@ | |||||
Margin="10,0,10,0" | Margin="10,0,10,0" | ||||
HorizontalAlignment="Left" | HorizontalAlignment="Left" | ||||
Orientation="Vertical"> | Orientation="Vertical"> | ||||
<CheckBox | |||||
Margin="0,10,10,0" | |||||
VerticalAlignment="Center" | |||||
Content="西门子设备连接" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Foreground="Aqua" | |||||
IsChecked="{Binding SiemensConnect}" /> | |||||
<CheckBox | |||||
Margin="0,10,10,0" | |||||
VerticalAlignment="Center" | |||||
Content="粉料仓设备连接" | |||||
FontFamily="楷体" | |||||
FontSize="20" | |||||
Foreground="Aqua" | |||||
IsChecked="{Binding WindSendConnect}" /> | |||||
<CheckBox | <CheckBox | ||||
Margin="0,10,10,0" | Margin="0,10,10,0" | ||||
VerticalAlignment="Center" | VerticalAlignment="Center" | ||||
@@ -1,218 +0,0 @@ | |||||
<UserControl | |||||
x:Class="BPASmartClient.FoodStationTest.View.WindSendParView" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:con="clr-namespace:BPASmartClient.FoodStationTest.Converter" | |||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:local="clr-namespace:BPASmartClient.FoodStationTest.View" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:pry="clr-namespace:BPASmartClient.CustomResource.UserControls;assembly=BPASmartClient.CustomResource" | |||||
xmlns:vm="clr-namespace:BPASmartClient.FoodStationTest.ViewModel" | |||||
d:DesignHeight="1080" | |||||
d:DesignWidth="1920" | |||||
mc:Ignorable="d"> | |||||
<UserControl.DataContext> | |||||
<vm:WindSendParViewModel /> | |||||
</UserControl.DataContext> | |||||
<UserControl.Resources> | |||||
<ResourceDictionary> | |||||
<ResourceDictionary.MergedDictionaries> | |||||
<ResourceDictionary Source="/BPASmartClient.FoodStationTest;component/Resource/MyStyle.xaml" /> | |||||
</ResourceDictionary.MergedDictionaries> | |||||
</ResourceDictionary> | |||||
</UserControl.Resources> | |||||
<Grid Margin="10"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="60" /> | |||||
<RowDefinition Height="40" /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<!--#region 表格标题栏设置--> | |||||
<Grid> | |||||
<StackPanel | |||||
HorizontalAlignment="Right" | |||||
VerticalAlignment="Center" | |||||
Orientation="Horizontal"> | |||||
<!--<pry:IcoButton | |||||
Margin="10" | |||||
Command="{Binding UpdateRawMaterial}" | |||||
Content="新增数据" | |||||
FontSize="28" | |||||
Foreground="Aqua" | |||||
Style="{StaticResource IcoButtonStyle}" />--> | |||||
<Button | |||||
Width="150" | |||||
Height="50" | |||||
Margin="5" | |||||
Command="{Binding SaveRawMaterialPara}" | |||||
Content="保存参数" | |||||
FontSize="28" | |||||
Foreground="DeepSkyBlue" | |||||
Style="{StaticResource ImageButtonStyle}" /> | |||||
<!--<pry:IcoButton | |||||
Margin="10" | |||||
Command="{Binding SaveRawMaterialPara}" | |||||
Content="保存参数" | |||||
FontSize="28" | |||||
Foreground="Aqua" | |||||
Style="{StaticResource IcoButtonStyle}" />--> | |||||
</StackPanel> | |||||
</Grid> | |||||
<Grid | |||||
Grid.Row="1" | |||||
Margin="0,10,0,0" | |||||
Background="#ff0C255F"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock | |||||
Grid.Column="0" | |||||
FontSize="24" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="序号" /> | |||||
<TextBlock | |||||
Grid.Column="1" | |||||
FontSize="24" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="料仓位置" /> | |||||
<TextBlock | |||||
Grid.Column="2" | |||||
FontSize="24" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="原料编号" /> | |||||
<TextBlock | |||||
Grid.Column="3" | |||||
FontSize="24" | |||||
Style="{StaticResource TitleTextblockStyle}" | |||||
Text="原料名称" /> | |||||
<Border | |||||
Grid.Column="0" | |||||
Grid.ColumnSpan="4" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,1,1,1" /> | |||||
<Border | |||||
Grid.Column="1" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
<Border | |||||
Grid.Column="3" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
</Grid> | |||||
<Grid Grid.Row="2"> | |||||
<ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> | |||||
<ItemsControl Foreground="DeepSkyBlue" ItemsSource="{Binding WindSendRawMaterial}"> | |||||
<ItemsControl.ItemTemplate> | |||||
<DataTemplate> | |||||
<Grid Name="gr"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock | |||||
Grid.Column="0" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding Location}" /> | |||||
<TextBlock | |||||
Grid.Column="1" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding Location}" /> | |||||
<TextBox | |||||
Grid.Column="2" | |||||
Style="{StaticResource InputTextboxStyle}" | |||||
Text="{Binding RawMaterialName}" /> | |||||
<TextBlock | |||||
Grid.Column="3" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding RawMaterialChineseName}" /> | |||||
<Border | |||||
Grid.Column="0" | |||||
Grid.ColumnSpan="4" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,1" /> | |||||
<Border | |||||
Grid.Column="1" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
<Border | |||||
Grid.Column="3" | |||||
BorderBrush="{StaticResource bordColor}" | |||||
BorderThickness="1,0,1,0" /> | |||||
<!--<Grid Grid.Column="0" Margin="5"> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding Location}" /> | |||||
<Border BorderThickness="1,0,1,0" Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Grid Grid.Column="1" Margin="5"> | |||||
<TextBlock | |||||
Width="50" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding Location}" | |||||
TextAlignment="Center" /> | |||||
<Border BorderThickness="1,0,1,0" Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Grid Grid.Column="2" Margin="5"> | |||||
<TextBox | |||||
Name="name" | |||||
Width="50" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding RawMaterialName}" /> | |||||
<Border BorderThickness="1,0,1,0" Cursor="SizeWE" /> | |||||
</Grid> | |||||
<Grid Grid.Column="3" Margin="5"> | |||||
<TextBlock | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
FontSize="16" | |||||
Text="{Binding RawMaterialChineseName}" /> | |||||
<Border BorderThickness="1,0,1,0" Cursor="SizeWE" /> | |||||
</Grid>--> | |||||
</Grid> | |||||
<DataTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter TargetName="gr" Property="Background" Value="#112AB2E7" /> | |||||
</Trigger> | |||||
</DataTemplate.Triggers> | |||||
</DataTemplate> | |||||
</ItemsControl.ItemTemplate> | |||||
</ItemsControl> | |||||
</ScrollViewer> | |||||
</Grid> | |||||
</Grid> | |||||
</UserControl> |
@@ -1,16 +0,0 @@ | |||||
using System.Windows.Controls; | |||||
namespace BPASmartClient.FoodStationTest.View | |||||
{ | |||||
/// <summary> | |||||
/// DeviceMaterialParView.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class WindSendParView : UserControl | |||||
{ | |||||
public WindSendParView() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
} | |||||
} |
@@ -39,11 +39,11 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
res.RawMaterialName = DeviceName; | res.RawMaterialName = DeviceName; | ||||
DeviceInquire.GetInstance.devices.ElementAt(index).DeviceName = DeviceName; | DeviceInquire.GetInstance.devices.ElementAt(index).DeviceName = DeviceName; | ||||
DeviceInquire.GetInstance.GetDevice(IpAddress).SetDeviceName(DeviceName);//设置PLC名称 | DeviceInquire.GetInstance.GetDevice(IpAddress).SetDeviceName(DeviceName);//设置PLC名称 | ||||
for (int i = 0; i < Json<LocaPar>.Data.Recipes.Count; i++) | |||||
for (int i = 0; i < Json<LocalPar>.Data.Recipes.Count; i++) | |||||
{ | { | ||||
for (int m = 0; m < Json<LocaPar>.Data.Recipes.ElementAt(i).RawMaterials.Count; m++) | |||||
for (int m = 0; m < Json<LocalPar>.Data.Recipes.ElementAt(i).RawMaterials.Count; m++) | |||||
{ | { | ||||
Json<LocaPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).RawMaterialName = DeviceName; | |||||
Json<LocalPar>.Data.Recipes.ElementAt(i).RawMaterials.ElementAt(m).RawMaterialName = DeviceName; | |||||
} | } | ||||
} | } | ||||
ActionManage.GetInstance.Send("ChangeDeviceNameViewClose"); | ActionManage.GetInstance.Send("ChangeDeviceNameViewClose"); | ||||
@@ -161,9 +161,9 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
} | } | ||||
Thread.Sleep(200); | Thread.Sleep(200); | ||||
}), "获取系统状态", true); | }), "获取系统状态", true); | ||||
if (cylinderModels.Count < 15) | |||||
if (cylinderModels.Count < Json<LocalPar>.Data.RawMaterialDeviceNum) | |||||
{ | { | ||||
for (int i = 0; i < 15; i++) | |||||
for (int i = 0; i < Json<LocalPar>.Data.RawMaterialDeviceNum; i++) | |||||
{ | { | ||||
cylinderModels.Add(new CylinderModel() | cylinderModels.Add(new CylinderModel() | ||||
{ | { | ||||
@@ -76,9 +76,9 @@ p: | |||||
if (RecipeCode.Length <= 0)//新建配方 | if (RecipeCode.Length <= 0)//新建配方 | ||||
{ | { | ||||
var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipeName == RecipeName); | |||||
var res = Array.FindIndex(Json<LocalPar>.Data.Recipes.ToArray(), p => p.RecipeName == RecipeName); | |||||
if (res >= 0 && res < Json<LocaPar>.Data.Recipes.Count) | |||||
if (res >= 0 && res < Json<LocalPar>.Data.Recipes.Count) | |||||
{ | { | ||||
ErrorInfo = "该配方已存在,请重新输入"; | ErrorInfo = "该配方已存在,请重新输入"; | ||||
} | } | ||||
@@ -89,14 +89,14 @@ p: | |||||
} | } | ||||
else//修改配方 | else//修改配方 | ||||
{ | { | ||||
var res = Array.FindIndex(Json<LocaPar>.Data.Recipes.ToArray(), p => p.RecipCode == RecipeCode); | |||||
if (res >= 0 && res < Json<LocaPar>.Data.Recipes.Count) | |||||
var res = Array.FindIndex(Json<LocalPar>.Data.Recipes.ToArray(), p => p.RecipCode == RecipeCode); | |||||
if (res >= 0 && res < Json<LocalPar>.Data.Recipes.Count) | |||||
{ | { | ||||
Json<LocaPar>.Data.Recipes.ElementAt(res).RecipeName = RecipeName; | |||||
Json<LocaPar>.Data.Recipes.ElementAt(res).RawMaterials.Clear(); | |||||
Json<LocalPar>.Data.Recipes.ElementAt(res).RecipeName = RecipeName; | |||||
Json<LocalPar>.Data.Recipes.ElementAt(res).RawMaterials.Clear(); | |||||
foreach (var item in RawMaterials) | foreach (var item in RawMaterials) | ||||
{ | { | ||||
Json<LocaPar>.Data.Recipes.ElementAt(res).RawMaterials.Add(item); | |||||
Json<LocalPar>.Data.Recipes.ElementAt(res).RawMaterials.Add(item); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -155,9 +155,9 @@ p: | |||||
var dates = date.Split("-").ToList(); | var dates = date.Split("-").ToList(); | ||||
StringBuilder sb = new StringBuilder(); | StringBuilder sb = new StringBuilder(); | ||||
dates?.ForEach((item) => { sb.Append(item); }); | dates?.ForEach((item) => { sb.Append(item); }); | ||||
Json<LocaPar>.Data.Recipes.Add(new RecipeModel() | |||||
Json<LocalPar>.Data.Recipes.Add(new RecipeModel() | |||||
{ | { | ||||
SerialNum = Json<LocaPar>.Data.Recipes.Count + 1, | |||||
SerialNum = Json<LocalPar>.Data.Recipes.Count + 1, | |||||
RawMaterials = RawMaterials, | RawMaterials = RawMaterials, | ||||
RecipCode = sb.ToString(), | RecipCode = sb.ToString(), | ||||
RecipeName = RecipeName, | RecipeName = RecipeName, | ||||
@@ -166,7 +166,7 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
public RelayCommand<object> ChangeRecipeStateCommand { get; set; } | public RelayCommand<object> ChangeRecipeStateCommand { get; set; } | ||||
public static ObservableCollection<RecipeModel> Recipes { get; set; } = Json<LocaPar>.Data.Recipes; | |||||
public static ObservableCollection<RecipeModel> Recipes { get; set; } = Json<LocalPar>.Data.Recipes; | |||||
public string CurrentRecipeName { get { return _RecipeName; } set { _RecipeName = value; OnPropertyChanged(); } } | public string CurrentRecipeName { get { return _RecipeName; } set { _RecipeName = value; OnPropertyChanged(); } } | ||||
private static string _RecipeName; | private static string _RecipeName; | ||||
@@ -19,7 +19,6 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | { | ||||
NotUseSmallDosing = GVL_SmallStation.GetInstance.NotUseSmallStation; | NotUseSmallDosing = GVL_SmallStation.GetInstance.NotUseSmallStation; | ||||
IsUseLocalRecipe = GVL_SmallStation.GetInstance.IsUseLocalRecipe; | IsUseLocalRecipe = GVL_SmallStation.GetInstance.IsUseLocalRecipe; | ||||
IsUseWindSendDosing = GVL_SmallStation.GetInstance.IsUseWindSend; | |||||
Recipes = Json<LocalRecipeDataColl>.Data.Recipes; | Recipes = Json<LocalRecipeDataColl>.Data.Recipes; | ||||
NewRecipe = new RelayCommand(() => | NewRecipe = new RelayCommand(() => | ||||
@@ -116,7 +115,7 @@ go: | |||||
RawMaterialLocation = i, | RawMaterialLocation = i, | ||||
}); | }); | ||||
} | } | ||||
if (GVL_SmallStation.GetInstance.IsUseWindSend && trayCode == 1) | |||||
if (/*GVL_SmallStation.GetInstance.IsUseWindSend &&*/ trayCode == 1) | |||||
{ | { | ||||
for (int i = 1; i < 6; i++) | for (int i = 1; i < 6; i++) | ||||
{ | { | ||||
@@ -15,7 +15,7 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | { | ||||
public RecipeSettingsViewModel() | public RecipeSettingsViewModel() | ||||
{ | { | ||||
Recipes = Json<LocaPar>.Data.Recipes; | |||||
Recipes = Json<LocalPar>.Data.Recipes; | |||||
NewMaterital = new RelayCommand(() => | NewMaterital = new RelayCommand(() => | ||||
{ | { | ||||
@@ -30,7 +30,7 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
}); | }); | ||||
SaveRecipe = new RelayCommand(() => | SaveRecipe = new RelayCommand(() => | ||||
{ | { | ||||
Json<LocaPar>.Save(); | |||||
Json<LocalPar>.Save(); | |||||
MessageNotify.GetInstance.ShowUserLog("保存配方"); | MessageNotify.GetInstance.ShowUserLog("保存配方"); | ||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方保存成功!"); | NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"配方保存成功!"); | ||||
}); | }); | ||||
@@ -38,9 +38,9 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | { | ||||
if (o is string str) | if (o is string str) | ||||
{ | { | ||||
var res = Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | |||||
var res = Json<LocalPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | |||||
if (res != null) | if (res != null) | ||||
Json<LocaPar>.Data.Recipes.Remove(res); | |||||
Json<LocalPar>.Data.Recipes.Remove(res); | |||||
MessageNotify.GetInstance.ShowUserLog($"删除名称——{res.RecipeName}"); | MessageNotify.GetInstance.ShowUserLog($"删除名称——{res.RecipeName}"); | ||||
} | } | ||||
}); | }); | ||||
@@ -51,7 +51,7 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | { | ||||
ActionManage.GetInstance.CancelRegister("Details"); | ActionManage.GetInstance.CancelRegister("Details"); | ||||
NewRecipeView nrv = new NewRecipeView(); | NewRecipeView nrv = new NewRecipeView(); | ||||
var res = Json<LocaPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | |||||
var res = Json<LocalPar>.Data.Recipes.FirstOrDefault(p => p.RecipCode == str); | |||||
ActionManage.GetInstance.Send("Details", res); | ActionManage.GetInstance.Send("Details", res); | ||||
nrv.ShowDialog(); | nrv.ShowDialog(); | ||||
MessageNotify.GetInstance.ShowUserLog($"编辑配方名称——{res.RecipeName}"); | MessageNotify.GetInstance.ShowUserLog($"编辑配方名称——{res.RecipeName}"); | ||||
@@ -1,129 +0,0 @@ | |||||
using BPASmartClient.CustomResource.Pages.Model; | |||||
using BPASmartClient.CustomResource.UserControls; | |||||
using BPASmartClient.CustomResource.UserControls.MessageShow; | |||||
using BPASmartClient.FoodStationTest.Model; | |||||
using BPASmartClient.Helper; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using Microsoft.Toolkit.Mvvm.Input; | |||||
using System; | |||||
using System.ComponentModel; | |||||
using System.Runtime.CompilerServices; | |||||
using System.Threading; | |||||
namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | |||||
public class RobotViewModel : ObservableObject | |||||
{ | |||||
public RobotViewModel() | |||||
{ | |||||
ThreadManage.GetInstance().StartLong(() => | |||||
{ | |||||
IsRunProgramNum = GVL_SmallStation.GetInstance.RobotProgramNum; | |||||
RobotIsAutoMode = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(2); | |||||
RobotIsAutoRun = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(3); | |||||
RobotIsStop = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(4); | |||||
RobotIsRun = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(5); | |||||
RobotIsAlarm = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(6); | |||||
RobotIsHomed = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(7); | |||||
//RobotGetEmptyBarrelComplete = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(8); | |||||
//RobotPutEmptyBarrelComplete = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(9); | |||||
//RobotGetFullBarrelComplete = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(10); | |||||
//RobotPutFullBarrelComplete = GVL_SmallStation.GetInstance.RobotStatus.GetBitValue(11); | |||||
Thread.Sleep(10); | |||||
}, "机器人状态", true); | |||||
SystemStart = new RelayCommand(() => | |||||
{ | |||||
ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX0.1"); | |||||
MessageNotify.GetInstance.ShowUserLog($"手动控制,机器人启动"); | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"机器人启动,操作完成!"); | |||||
}); | |||||
SystemStop = new RelayCommand(() => | |||||
{ | |||||
ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX0.2"); | |||||
MessageNotify.GetInstance.ShowUserLog($"手动控制,机器人停止"); | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"机器人停止,操作完成!"); | |||||
}); | |||||
EStopReset = new RelayCommand(() => | |||||
{ | |||||
ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX0.3"); | |||||
MessageNotify.GetInstance.ShowUserLog($"手动控制,机器人急停复位"); | |||||
NoticeDemoViewModel.OpenMsg(EnumPromptType.Success, App.MainWindow, "提示", $"机器人急停复位,操作完成!"); | |||||
}); | |||||
//TestRobotRun = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX100.4"); | |||||
//}); | |||||
//AutoMode = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendFalseCommand", "DB4.DBX100.3"); | |||||
//}); | |||||
//TestMode = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX100.3"); | |||||
//}); | |||||
//RobotGetEmptyBarrel = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX100.7"); | |||||
//}); | |||||
//RobotPutEmptyBarrel = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX101.0"); | |||||
//}); | |||||
//RobotGetFullBarrel = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX101.1"); | |||||
//}); | |||||
//RobotPutFullBarrel = new RelayCommand(() => { | |||||
// ActionManage.GetInstance.Send("RobotSendTrueCommand", "DB4.DBX101.2"); | |||||
//}); | |||||
//SetProgramNumCommand = new RelayCommand(() =>{ | |||||
// ActionManage.GetInstance.Send("RobotSetProgramNum", SetProgramNum); | |||||
//}); | |||||
} | |||||
public RelayCommand SystemStart { get; set; } | |||||
public RelayCommand SystemStop { get; set; } | |||||
public RelayCommand EStopReset { get; set; } | |||||
public RelayCommand TestRobotRun { get; set; } | |||||
public RelayCommand AutoMode { get; set; } | |||||
public RelayCommand TestMode { get; set; } | |||||
public RelayCommand RobotGetEmptyBarrel { get; set; } | |||||
public RelayCommand RobotPutEmptyBarrel { get; set; } | |||||
public RelayCommand RobotGetFullBarrel { get; set; } | |||||
public RelayCommand RobotPutFullBarrel { get; set; } | |||||
public RelayCommand SetProgramNumCommand { get; set; } | |||||
public static short IsRunProgramNum { get { return _runProgramNum; } set { _runProgramNum = value; OnStaticPropertyChanged(); } } | |||||
private static short _runProgramNum; | |||||
public short SetProgramNum { get { return _SetProgramNum; } set { _SetProgramNum = value; OnPropertyChanged(); } } | |||||
private short _SetProgramNum; | |||||
public static bool RobotIsAutoMode { get { return _RobotIsAutoMode; } set { _RobotIsAutoMode = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsAutoMode; | |||||
public static bool RobotIsAutoRun { get { return _RobotIsAutoRun; } set { _RobotIsAutoRun = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsAutoRun; | |||||
public static bool RobotIsStop { get { return _RobotIsStop; } set { _RobotIsStop = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsStop; | |||||
public static bool RobotIsRun { get { return _RobotIsRun; } set { _RobotIsRun = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsRun; | |||||
public static bool RobotIsAlarm { get { return _RobotIsAlarm; } set { _RobotIsAlarm = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsAlarm; | |||||
public static bool RobotIsHomed { get { return _RobotIsHomed; } set { _RobotIsHomed = value; OnStaticPropertyChanged(); } } | |||||
private static bool _RobotIsHomed; | |||||
public bool RobotGetEmptyBarrelComplete { get { return _RobotGetEmptyBarrelComplete; } set { _RobotGetEmptyBarrelComplete = value; OnPropertyChanged(); } } | |||||
private bool _RobotGetEmptyBarrelComplete; | |||||
public bool RobotPutEmptyBarrelComplete { get { return _RobotPutEmptyBarrelComplete; } set { _RobotPutEmptyBarrelComplete = value; OnPropertyChanged(); } } | |||||
private bool _RobotPutEmptyBarrelComplete; | |||||
public bool RobotGetFullBarrelComplete { get { return _RobotGetFullBarrelComplete; } set { _RobotGetFullBarrelComplete = value; OnPropertyChanged(); } } | |||||
private bool _RobotGetFullBarrelComplete; | |||||
public bool RobotPutFullBarrelComplete { get { return _RobotPutFullBarrelComplete; } set { _RobotPutFullBarrelComplete = value; OnPropertyChanged(); } } | |||||
private bool _RobotPutFullBarrelComplete; | |||||
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged; | |||||
public static void OnStaticPropertyChanged([CallerMemberName] string PropName = "") | |||||
{ | |||||
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(PropName)); | |||||
} | |||||
} | |||||
} |
@@ -13,8 +13,6 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | { | ||||
public SystemParViewModel() | public SystemParViewModel() | ||||
{ | { | ||||
SiemensConnect = Json<DevicePar>.Data.deviceConnectPar.SiemensConnect; | |||||
WindSendConnect = Json<DevicePar>.Data.deviceConnectPar.WindSendConnect; | |||||
HKPlcConnect = Json<DevicePar>.Data.deviceConnectPar.HKPlcConnect; | HKPlcConnect = Json<DevicePar>.Data.deviceConnectPar.HKPlcConnect; | ||||
ShieldStockbinAlarm = Json<DevicePar>.Data.deviceConnectPar.ShieldStockbinAlarm; | ShieldStockbinAlarm = Json<DevicePar>.Data.deviceConnectPar.ShieldStockbinAlarm; | ||||
@@ -26,8 +24,6 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
Axis2Speed = Json<DevicePar>.Data.deviceConnectPar.Axis2Speed; | Axis2Speed = Json<DevicePar>.Data.deviceConnectPar.Axis2Speed; | ||||
SaveCommand = new RelayCommand(() => | SaveCommand = new RelayCommand(() => | ||||
{ | { | ||||
Json<DevicePar>.Data.deviceConnectPar.SiemensConnect = SiemensConnect; | |||||
Json<DevicePar>.Data.deviceConnectPar.WindSendConnect = WindSendConnect; | |||||
Json<DevicePar>.Data.deviceConnectPar.HKPlcConnect = HKPlcConnect; | Json<DevicePar>.Data.deviceConnectPar.HKPlcConnect = HKPlcConnect; | ||||
Json<DevicePar>.Data.deviceConnectPar.ShieldStockbinAlarm = ShieldStockbinAlarm; | Json<DevicePar>.Data.deviceConnectPar.ShieldStockbinAlarm = ShieldStockbinAlarm; | ||||
@@ -59,10 +55,6 @@ namespace BPASmartClient.FoodStationTest.ViewModel | |||||
public ConnectParMode CommBaseParModel { get { return Json<DevicePar>.Data.deviceConnectPar; } set { Json<DevicePar>.Data.deviceConnectPar = value; OnPropertyChanged(); } } | public ConnectParMode CommBaseParModel { get { return Json<DevicePar>.Data.deviceConnectPar; } set { Json<DevicePar>.Data.deviceConnectPar = value; OnPropertyChanged(); } } | ||||
public bool SiemensConnect { get { return _mSiemensConnect; } set { _mSiemensConnect = value; OnPropertyChanged(); } } | |||||
private bool _mSiemensConnect; | |||||
public bool WindSendConnect { get { return _mWindSendConnect; } set { _mWindSendConnect = value; OnPropertyChanged(); } } | |||||
private bool _mWindSendConnect; | |||||
public bool HKPlcConnect { get { return _mHKPlcConnect; } set { _mHKPlcConnect = value; OnPropertyChanged(); } } | public bool HKPlcConnect { get { return _mHKPlcConnect; } set { _mHKPlcConnect = value; OnPropertyChanged(); } } | ||||
private bool _mHKPlcConnect; | private bool _mHKPlcConnect; | ||||
public bool ShieldStockbinAlarm { get { return _mShieldStockbinAlarm; } set { _mShieldStockbinAlarm = value; OnPropertyChanged(); } } | public bool ShieldStockbinAlarm { get { return _mShieldStockbinAlarm; } set { _mShieldStockbinAlarm = value; OnPropertyChanged(); } } | ||||
@@ -1,22 +0,0 @@ | |||||
using BPASmartClient.FoodStationTest.Model; | |||||
using BPASmartClient.Helper; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using Microsoft.Toolkit.Mvvm.Input; | |||||
namespace BPASmartClient.FoodStationTest.ViewModel | |||||
{ | |||||
public class WindSendParViewModel : ObservableObject | |||||
{ | |||||
public WindSendParViewModel() | |||||
{ | |||||
SaveRawMaterialPara = new RelayCommand(() => | |||||
{ | |||||
Json<DevicePar>.Save(); | |||||
}); | |||||
} | |||||
public RelayCommand SaveRawMaterialPara { get; set; } | |||||
} | |||||
} |