diff --git a/CapMachine.Wpf/Models/Tag/ITag.cs b/CapMachine.Wpf/Models/Tag/ITag.cs index 5d5697c..41f63a4 100644 --- a/CapMachine.Wpf/Models/Tag/ITag.cs +++ b/CapMachine.Wpf/Models/Tag/ITag.cs @@ -32,15 +32,25 @@ namespace CapMachine.Wpf.Models.Tag string? Unit { get; set; } /// - /// 工程值 + /// 工程值 PV /// double EngValue { get; set; } /// - /// 工程值的字符串 + /// 工程值的字符串 PV /// string EngValueStr { get; set; } + /// + /// 工程值 Sv + /// + double EngSvValue { get; set; } + + /// + /// 工程值的字符串 Sv + /// + string EngSvValueStr { get; set; } + /// /// MV /// diff --git a/CapMachine.Wpf/Models/Tag/Tag.cs b/CapMachine.Wpf/Models/Tag/Tag.cs index b83c4ec..aa2e3b9 100644 --- a/CapMachine.Wpf/Models/Tag/Tag.cs +++ b/CapMachine.Wpf/Models/Tag/Tag.cs @@ -177,11 +177,38 @@ namespace CapMachine.Wpf.Models.Tag set { _AutoHandState = value; RaisePropertyChanged(); } } + private double _EngSVValue; + /// + /// 工程值 SV + /// + public double EngSVValue + { + get { return _EngSVValue; } + set + { + _EngSVValue = value; + if (TagValue.IsShow) + { + RaisePropertyChanged(); + } + EngSvValueStr = Math.Round(value, DecimalPoint).ToString(); + } + } + + private string _EngSvValueStr; + /// + /// 工程值的字符串 SV + /// + public string EngSvValueStr + { + get { return _EngSvValueStr; } + set { _EngSvValueStr = value; RaisePropertyChanged(); } + } private double _EngValue; /// - /// 工程值 + /// 工程值 PV /// public double EngValue { diff --git a/CapMachine.Wpf/Services/MachineRtDataService.cs b/CapMachine.Wpf/Services/MachineRtDataService.cs index 2d7a5c9..06c664d 100644 --- a/CapMachine.Wpf/Services/MachineRtDataService.cs +++ b/CapMachine.Wpf/Services/MachineRtDataService.cs @@ -895,6 +895,11 @@ namespace CapMachine.Wpf.Services private OperateResult OperateResultShort { get; set; } + /// + /// SV数据 + /// + private OperateResult OperateResultSVShort { get; set; } + private Random Random { get; set; } = new Random(); /// @@ -975,9 +980,20 @@ namespace CapMachine.Wpf.Services LinkState = false; } } - else + + if (!string.IsNullOrEmpty(itemTag.Value.SVAddress)) { - + OperateResultSVShort = SiemensDrive.ReadInt16(itemTag.Value.SVAddress); + if (OperateResultSVShort.IsSuccess) + { + TagManger.GetTagInfoValueByName(itemTag.Value.Name)!.Value = OperateResultSVShort.Content; + TagManger.GetTagByName(itemTag.Value.Name).EngSVValue = TagManger.GetTagInfoValueByName(itemTag.Value.Name)!.Value * 1.0 / TagManger.GetTagByName(itemTag.Value.Name)!.Precision; + LinkState = true; + } + else + { + LinkState = false; + } } break; default: diff --git a/CapMachine.Wpf/Views/MonitorView.xaml b/CapMachine.Wpf/Views/MonitorView.xaml index cb2fc47..6c46c50 100644 --- a/CapMachine.Wpf/Views/MonitorView.xaml +++ b/CapMachine.Wpf/Views/MonitorView.xaml @@ -170,6 +170,7 @@ HandValueCommand="{Binding Source={StaticResource Proxy}, Path=Data.HandValueCmd}" MeterName="{Binding NameNoUnit}" PVValue="{Binding EngValue}" + SVValue="{Binding EngSVValue}" Unit="{Binding Unit}" />