From 1afe548ac40cc7f975917ef9bf2e156595cf81f3 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期四, 16 四月 2026 08:58:04 +0800
Subject: [PATCH] 优化;
---
Plugin.CurrentSensorControl/ControlPage.xaml.cs | 173 +++++++++++++++++++++++++++++----------------------------
1 files changed, 87 insertions(+), 86 deletions(-)
diff --git a/Plugin.CurrentSensorControl/ControlPage.xaml.cs b/Plugin.CurrentSensorControl/ControlPage.xaml.cs
index 85d9f42..7116394 100644
--- a/Plugin.CurrentSensorControl/ControlPage.xaml.cs
+++ b/Plugin.CurrentSensorControl/ControlPage.xaml.cs
@@ -1,20 +1,19 @@
锘縰sing CommunityToolkit.Mvvm.ComponentModel;
-using ConnectionUtil;
using HMI.Base;
-using HMI.Core.Setting;
using HMI.Core.Util;
using HMI.UI.Util;
using HMI.Util;
using HslCommunication.Profinet.Siemens;
using log4net;
using Microsoft.Win32;
+using PLCHelper;
+using PLCHelper.Entity;
using Plugin.CurrentSensorControl.Entity;
using System.Collections.ObjectModel;
using System.IO;
using System.Timers;
using System.Windows;
using System.Windows.Controls;
-using System.Xml.Linq;
namespace Plugin.CurrentSensorControl
{
@@ -70,9 +69,6 @@
opcTimer.AutoReset = false;
opcTimer.Interval = 1000;
- S7Context.Init(SystemSetting.Instance.PlcIp, SystemSetting.Instance.PlcPort);
- api = S7Context.Get($"1");
-
DataContext = this;
InitializeComponent();
}
@@ -80,12 +76,26 @@
private void OpcTimer_Elapsed(object sender, ElapsedEventArgs e)
{
opcTimer.Enabled = false;
+
+ try
+ {
+ if (S7Context.GetData(api, "PLC_Mute", out object val))
+ {
+ plcMute = (bool)val;
+ OnPropertyChanged("PlcMute");
+ }
+ }
+ catch (Exception ex)
+ {
+
+ }
+
try
{
var time = DateTime.Now;
ovenCollection.Refresh();
+ S7Context.ResetFailCount();
log.Debug($"Time Cast: {(DateTime.Now - time).TotalMilliseconds}ms");
-
}
catch (Exception ex)
{
@@ -99,18 +109,6 @@
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
timer.Enabled = false;
- try
- {
- if (S7Context.GetData(api, "PLC_Mute", out object val))
- {
- plcMute = (bool)val;
- OnPropertyChanged("PlcMute");
- }
- }
- catch (Exception ex)
- {
-
- }
try
{
@@ -137,10 +135,19 @@
public override void InitFinish()
{
Logger = log;
+ try
+ {
+ LoadBurnInSetting();
+ }
+ catch (Exception ex)
+ {
+ log.Error("LoadBurnInSetting Error.", ex);
+ }
}
public override void Active()
{
+ if (!isLoaded) return;
StartReadCurrent();
}
@@ -152,6 +159,7 @@
public override void DoClose(object sender, EventArgs e)
{
StopReadCurrent();
+ S7Context.Release();
base.DoClose(sender, e);
}
@@ -189,65 +197,79 @@
private void ClearSensorControl()
{
- foreach (var ctl in diWrap.Children)
- {
- if (ctl is SingleSensor ss)
- {
- ss.Close();
- }
- }
- diWrap.Children.Clear();
- controls.Clear();
+ //foreach (var ctl in diWrap.Children)
+ //{
+ // if (ctl is SingleSensor ss)
+ // {
+ // ss.Close();
+ // }
+ //}
+ //diWrap.Children.Clear();
+ //controls.Clear();
}
private void RefreshSensorControl(bool start)
{
- StopReadCurrent();
- ClearSensorControl();
- foreach (var data in Datasource)
- {
- SingleSensor ss = new SingleSensor(data.Name, data.Ip, data.Port, data.Address, data.Channel)
- {
- Width = 240
- };
- diWrap.Children.Add(ss);
- controls.Add(ss);
- Task.Factory.StartNew(() =>
- {
- ss.Connect();
- });
- }
- if (start) StartReadCurrent();
+ //StopReadCurrent();
+ //ClearSensorControl();
+ //foreach (var data in Datasource)
+ //{
+ // SingleSensor ss = new SingleSensor(data.Name, data.Ip, data.Port, data.Address, data.Channel)
+ // {
+ // Width = 240
+ // };
+ // diWrap.Children.Add(ss);
+ // controls.Add(ss);
+ // Task.Factory.StartNew(() =>
+ // {
+ // ss.Connect();
+ // });
+ //}
+ //if (start) StartReadCurrent();
}
private void ConnectAllSensor()
{
- foreach (var ctl in diWrap.Children)
- {
- if (ctl is SingleSensor ss)
- {
- ss.Connect();
- }
- }
+ //foreach (var ctl in diWrap.Children)
+ //{
+ // if (ctl is SingleSensor ss)
+ // {
+ // ss.Connect();
+ // }
+ //}
}
private void DisconnectAllSensor()
{
- foreach (var ctl in diWrap.Children)
- {
- if (ctl is SingleSensor ss)
- {
- ss.Close();
- }
- }
+ //foreach (var ctl in diWrap.Children)
+ //{
+ // if (ctl is SingleSensor ss)
+ // {
+ // ss.Close();
+ // }
+ //}
}
+ private bool isLoaded = false;
private void SimpleMaskControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
- LoadSensorData();
- RefreshSensorControl(needRead);
- LoadBurnInSetting();
- Loaded -= SimpleMaskControl_Loaded;
+ ShowMask(() =>
+ {
+ api = S7Context.Get($"1");
+ Dispatcher.Invoke(() =>
+ {
+ LoadSensorData();
+ RefreshSensorControl(needRead);
+ //LoadBurnInSetting();
+ StartReadCurrent();
+ isLoaded = true;
+ Loaded -= SimpleMaskControl_Loaded;
+ });
+ }, (ex) =>
+ {
+ ToastHelper.Error("Loaded Failed.");
+ log.Error("Load Error.", ex);
+ }, null, "璇风◢鍚�");
}
private void OpenDataModal(SensorData data)
@@ -393,34 +415,13 @@
private void LoadBurnInSetting()
{
- S7Context.dataCache.Clear();
- ObservableCollection<PLCTagData> datas;
- try
- {
- string path = Path.Combine(BaseFolder, "BurnInSettingData.data");
- if (File.Exists(path))
- {
- datas = XmlHelper.DeserializeFromXml<ObservableCollection<PLCTagData>>(path);
- }
- else
- {
- datas = new ObservableCollection<PLCTagData>();
- }
- }
- catch (Exception ex)
- {
- datas = new ObservableCollection<PLCTagData>();
- }
- BurnInSettingData = datas;
- LoadBurnInSettingCache();
+ S7Context.LoadTagData();
+ BurnInSettingData = S7Context.Datasource;
}
private void LoadBurnInSettingCache()
{
- foreach (var data in BurnInSettingData)
- {
- S7Context.dataCache[data.Name] = data;
- }
+ S7Context.LoadTagData();
}
private void OpenBurnSettingModal()
--
Gitblit v1.9.1