重新设计了标签变量系统
This commit is contained in:
@@ -50,14 +50,18 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//赋值实例化
|
||||
ListHandSwitchData = MachineRtDataService.ListHandSwitchData;
|
||||
|
||||
ListTag = new ObservableCollection<ITag>(TagManager.DicTags.Values.ToList());
|
||||
ListMeterTag = TagManager.DicTags.Values.Where(a => a.IsMeter == true).ToList();
|
||||
|
||||
//ListTag = new ObservableCollection<ITag>(TagManager.DicTags.Values.ToList());
|
||||
RefreshListTag();
|
||||
|
||||
ListMeterTag = TagManager.DicTags.Values.Where(a => a.Group == "程序").OrderBy(a=>a.Id).Take(11).ToList();
|
||||
|
||||
SpeedTag = TagManager.DicTags.GetValueOrDefault("转速[rpm]");
|
||||
ExPressTag = TagManager.DicTags.GetValueOrDefault("排气压力[BarA]");
|
||||
ExTempTag = TagManager.DicTags.GetValueOrDefault("排气温度[℃]");
|
||||
InhPressTag = TagManager.DicTags.GetValueOrDefault("吸气压力[BarA]");
|
||||
InhTempTag = TagManager.DicTags.GetValueOrDefault("吸气温度[℃]");
|
||||
|
||||
ComCapBusVolTag = TagManager.DicTags.GetValueOrDefault("通讯母线电压[V]");
|
||||
ComCapBusCurTag = TagManager.DicTags.GetValueOrDefault("通讯母线电流[A]");
|
||||
ComCapPwTag = TagManager.DicTags.GetValueOrDefault("通讯功率[W]");
|
||||
@@ -89,6 +93,34 @@ namespace CapMachine.Wpf.ViewModels
|
||||
new ChartRtValue(){ Name="湿度",Value=12.3,Unit="%"},
|
||||
};
|
||||
|
||||
|
||||
private List<string> _FilterGroups = new List<string> { "程序", "采集", "压缩机" };
|
||||
/// <summary>
|
||||
/// 动态过滤(支持运行时更改过滤条件)
|
||||
/// </summary>
|
||||
public List<string> FilterGroups
|
||||
{
|
||||
get => _FilterGroups;
|
||||
set
|
||||
{
|
||||
_FilterGroups = value;
|
||||
RaisePropertyChanged();
|
||||
RefreshListTag(); // 更新ListTag
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 动态过滤ListTag(支持运行时更改过滤条件)
|
||||
/// </summary>
|
||||
private void RefreshListTag()
|
||||
{
|
||||
ListTag = new ObservableCollection<ITag>(
|
||||
TagManager.DicTags.Values.Where(tag =>
|
||||
FilterGroups.Contains(tag.Group) || FilterGroups.Count == 0
|
||||
).OrderBy(a => a.Id).ToList()
|
||||
);
|
||||
}
|
||||
|
||||
private ObservableCollection<ITag> _ListTag;
|
||||
/// <summary>
|
||||
/// 标签集合信息
|
||||
@@ -241,7 +273,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
MachineRtDataService.SysStart();
|
||||
//开始记录数据
|
||||
DataRecordService.StartRecord();
|
||||
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -389,6 +421,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
return _AutoHandCmd;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作指令执行方法
|
||||
/// </summary>
|
||||
@@ -404,11 +437,15 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//
|
||||
foreach (var item in TagManager.DicTags)
|
||||
{
|
||||
//用无单位的比较
|
||||
if (item.Value.NameNoUnit == MeterControl.MeterName)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.Value.AutoHandSwitchAddress))
|
||||
if (TagManager.TryGetShortControlTagByName(item.Value.Name, out ShortControlTag? shortControlTag))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.AutoHandSwitchAddress, MeterControl.AutoHandState == true ? (short)1 : (short)0);
|
||||
if (!string.IsNullOrEmpty(shortControlTag!.MVAutoHandModel.Address))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(shortControlTag!.MVAutoHandModel.Address, MeterControl.AutoHandState == true ? (short)1 : (short)0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -450,22 +487,29 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//
|
||||
foreach (var item in TagManager.DicTags)
|
||||
{
|
||||
//用无单位的比较
|
||||
if (item.Value.NameNoUnit == ChannelValue.Name)
|
||||
{
|
||||
switch (ChannelValue.Type)
|
||||
{
|
||||
case "MV"://10的倍率
|
||||
if (!string.IsNullOrEmpty(item.Value.MVAddress))
|
||||
if (TagManager.TryGetMVModel(item.Value.Name, out MeterValueAttrCell? MvcontrolAttrCell))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.MVAddress, (short)((double)ChannelValue.Value * 10));
|
||||
break;
|
||||
if (!string.IsNullOrEmpty(MvcontrolAttrCell!.Address))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(MvcontrolAttrCell!.Address, (short)((double)ChannelValue.Value * 10));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "SV":
|
||||
if (!string.IsNullOrEmpty(item.Value.SVAddress))
|
||||
if (TagManager.TryGetSVModel(item.Value.Name, out MeterValueAttrCell? sVcontrolAttrCell))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(item.Value.SVAddress, (short)((double)ChannelValue.Value * item.Value.Precision));
|
||||
break;
|
||||
if (!string.IsNullOrEmpty(sVcontrolAttrCell!.Address))
|
||||
{
|
||||
var Result = MachineRtDataService.SiemensDrive.Write(sVcontrolAttrCell!.Address, (short)((double)ChannelValue.Value * item.Value.Precision));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user