一些优化:CAN和PLC地址的优化

This commit is contained in:
2025-01-01 13:11:13 +08:00
parent 8b21846424
commit 26569135d3
182 changed files with 87934 additions and 261 deletions

View File

@@ -5,6 +5,7 @@ using CapMachine.Wpf.Models;
using CapMachine.Wpf.Models.Tag;
using CapMachine.Wpf.PrismEvent;
using CapMachine.Wpf.Services;
using ImTools;
using Prism.Commands;
using Prism.Events;
using Prism.Services.Dialogs;
@@ -15,6 +16,15 @@ namespace CapMachine.Wpf.ViewModels
{
public class MonitorViewModel : NavigationViewModel
{
/// <summary>
/// 实例化函数
/// </summary>
/// <param name="configService"></param>
/// <param name="eventAggregator"></param>
/// <param name="dataRecordService"></param>
/// <param name="sysRunService"></param>
/// <param name="machineRtDataService"></param>
/// <param name="dialogService"></param>
public MonitorViewModel(ConfigService configService, IEventAggregator eventAggregator,
DataRecordService dataRecordService, SysRunService sysRunService,
MachineRtDataService machineRtDataService, IDialogService dialogService)
@@ -31,6 +41,43 @@ namespace CapMachine.Wpf.ViewModels
ListTag = new ObservableCollection<ITag>(TagManager.DicTags.Values.ToList());
ListMeterTag = TagManager.DicTags.Values.Where(a => a.IsMeter == true).ToList();
SpeedTag = TagManager.DicTags.GetValueOrDefault("转速[rpm]");
ExPressTag = TagManager.DicTags.GetValueOrDefault("排气压力[MpaA]");
ExTempTag = TagManager.DicTags.GetValueOrDefault("排气温度[℃]");
InhPressTag = TagManager.DicTags.GetValueOrDefault("吸气压力[MpaA]");
InhTempTag = TagManager.DicTags.GetValueOrDefault("吸气温度[℃]");
ComCapBusVolTag = TagManager.DicTags.GetValueOrDefault("通讯母线电压[V]");
ComCapBusCurTag = TagManager.DicTags.GetValueOrDefault("通讯母线电流[A]");
ComCapPwTag = TagManager.DicTags.GetValueOrDefault("通讯功率[W]");
OS2TempTag = TagManager.DicTags.GetValueOrDefault("吸气混合器温度[℃]");
TxvFrTempTag = TagManager.DicTags.GetValueOrDefault("膨胀阀前温度[℃]");
TxvFrPressTag = TagManager.DicTags.GetValueOrDefault("膨胀阀前压力[MpaA]");
Cond1TempTag = TagManager.DicTags.GetValueOrDefault("冷凝器出口水温[℃]");
CondInTempTag = TagManager.DicTags.GetValueOrDefault("冷凝器进口温度[℃]");
ListHandSwitchData = new ObservableCollection<HandSwitchData>()
{
new HandSwitchData(){Name="自动",ActionAddress="M0.0",StateAddress="M0.0" },
new HandSwitchData(){Name="抽真空",ActionAddress="M0.1",StateAddress="M0.1" },
new HandSwitchData(){Name="复位",ActionAddress="M0.2",StateAddress="M0.2" },
new HandSwitchData(){Name="消音",ActionAddress="M0.3",StateAddress="M0.3" },
new HandSwitchData(){Name="HV电源",ActionAddress="M1.1",StateAddress="Q0.1" },
new HandSwitchData(){Name="HV启动",ActionAddress="M1.2",StateAddress="Q0.6" },
new HandSwitchData(){Name="LV电源",ActionAddress="M1.3",StateAddress="Q0.2" },
new HandSwitchData(){Name="水泵",ActionAddress="M1.4",StateAddress="Q0.3" },
new HandSwitchData(){Name="冷凝器电加热",ActionAddress="M1.5",StateAddress="Q0.4" },
new HandSwitchData(){Name="吸气混合器电加热",ActionAddress="M1.6",StateAddress="Q0.5" },
new HandSwitchData(){Name="吸排气球阀",ActionAddress="M1.7",StateAddress="Q0.7" },
new HandSwitchData(){Name="试验箱",ActionAddress="M2.0",StateAddress="VW32" },
new HandSwitchData(){Name="水SEV1",ActionAddress="M2.1",StateAddress="Q1.0" },
new HandSwitchData(){Name="水SEV2",ActionAddress="M2.2",StateAddress="Q1.1" },
new HandSwitchData(){Name="HCV1",ActionAddress="M2.3",StateAddress="Q1.2" },
new HandSwitchData(){Name="HCV2",ActionAddress="M2.4",StateAddress="Q1.3" },
new HandSwitchData(){Name="ECV1",ActionAddress="M2.5",StateAddress="Q1.4" },
new HandSwitchData(){Name="ECV2",ActionAddress="M2.6",StateAddress="Q1.5" },
new HandSwitchData(){Name="使能",ActionAddress="M2.7",StateAddress="V15.1" },
};
}
public ConfigService ConfigService { get; }
@@ -72,6 +119,87 @@ namespace CapMachine.Wpf.ViewModels
/// </summary>
public TagManager TagManager { get; set; }
private ObservableCollection<HandSwitchData> _ListHandSwitchData;
// <summary>
/// 手自动切换集合数据
/// </summary>
public ObservableCollection<HandSwitchData> ListHandSwitchData
{
get { return _ListHandSwitchData; }
set { _ListHandSwitchData = value; RaisePropertyChanged(); }
}
#region
/// <summary>
/// 转速标签
/// </summary>
public ITag SpeedTag { get; set; }
/// <summary>
/// 排气压力
/// </summary>
public ITag ExPressTag { get; set; }
/// <summary>
/// 排气温度
/// </summary>
public ITag ExTempTag { get; set; }
/// <summary>
/// 吸气压力
/// </summary>
public ITag InhPressTag { get; set; }
/// <summary>
/// 吸气温度
/// </summary>
public ITag InhTempTag { get; set; }
/// <summary>
/// 通讯母线电压
/// </summary>
public ITag ComCapBusVolTag { get; set; }
/// <summary>
/// 通讯母线电流
/// </summary>
public ITag ComCapBusCurTag { get; set; }
/// <summary>
/// 通讯功率
/// </summary>
public ITag ComCapPwTag { get; set; }
/// <summary>
/// 吸气混合器温度
/// </summary>
public ITag OS2TempTag { get; set; }
/// <summary>
/// 膨胀阀前温度
/// </summary>
public ITag TxvFrTempTag { get; set; }
/// <summary>
/// 膨胀阀前压力
/// </summary>
public ITag TxvFrPressTag { get; set; }
/// <summary>
/// 冷凝器出口水温
/// </summary>
public ITag Cond1TempTag { get; set; }
/// <summary>
/// 冷凝器进口温度
/// </summary>
public ITag CondInTempTag { get; set; }
#endregion
private DelegateCommand<string> _OperCmd;
/// <summary>
/// 操作指令你
@@ -151,8 +279,22 @@ namespace CapMachine.Wpf.ViewModels
{
if (Par != null && Par is Meter)
{
//True-手动False-自动
var MeterControl = (Meter)Par;
Console.WriteLine($"{MeterControl.MeterName}-{MeterControl.AutoHandState}");
//
foreach (var item in TagManager.DicTags)
{
if (item.Value.NameNoUnit == MeterControl.MeterName)
{
if (!string.IsNullOrEmpty(item.Value.AutoHandSwitchAddress))
{
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.AutoHandSwitchAddress, MeterControl.AutoHandState==true?1:0);
}
break;
}
}
}
}
@@ -186,6 +328,34 @@ namespace CapMachine.Wpf.ViewModels
{
var ChannelValue = (MeterChannelValue)Par;
Console.WriteLine($"{ChannelValue.Name}-{ChannelValue.Value}-{ChannelValue.Type}");
//
foreach (var item in TagManager.DicTags)
{
if (item.Value.NameNoUnit == ChannelValue.Name)
{
switch (ChannelValue.Type)
{
case "MV":
if (!string.IsNullOrEmpty(item.Value.MVAddress))
{
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.MVAddress, (short)((double)ChannelValue.Value* item.Value.Precision));
break;
}
break;
case "SV":
if (!string.IsNullOrEmpty(item.Value.SVAddress))
{
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.SVAddress, (short)((double)ChannelValue.Value * item.Value.Precision));
break;
}
break;
default:
break;
}
}
}
}
}
@@ -220,6 +390,7 @@ namespace CapMachine.Wpf.ViewModels
return _HandEnableCmd;
}
}
/// <summary>
/// 操作指令执行方法
/// </summary>
@@ -229,9 +400,18 @@ namespace CapMachine.Wpf.ViewModels
if (Par != null && Par is ToggleButton)
{
var ControlData = Par as ToggleButton;
var Name = ControlData.Name;
var Name = ControlData.ToolTip;
var Data = ControlData.IsChecked;
//ToDo cmd
var FindData = ListHandSwitchData.FirstOrDefault(a => a.Name == Name);
if (FindData != null)
{
//ToDo
Console.WriteLine($"{FindData.Name}-{FindData.ActionAddress}-{FindData.StateAddress}-{Data}");
var Result = MachineRtDataService.SiemensDrive.Write(FindData.ActionAddress, true);
//FindData.State = false;
}
}
}