初版
This commit is contained in:
@@ -6,6 +6,8 @@ using Prism.Mvvm;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Windows;
|
||||
using ComConfigHelper = FATrace.Com.ConfigHelper;
|
||||
using Prism.Events;
|
||||
using FATrace.WPLApp.Events;
|
||||
|
||||
namespace FATrace.WPLApp.Services
|
||||
{
|
||||
@@ -15,10 +17,12 @@ namespace FATrace.WPLApp.Services
|
||||
/// </summary>
|
||||
public class DataServices : BindableBase, IDisposable
|
||||
{
|
||||
public DataServices(ILogService logService, IFreeSql freeSql)
|
||||
public DataServices(ILogService logService, IFreeSql freeSql, IEventAggregator eventAggregator, SysRunService sysRunService)
|
||||
{
|
||||
LogService = logService;
|
||||
FreeSql = freeSql;
|
||||
EventAggregator = eventAggregator;
|
||||
SysRunService = sysRunService;
|
||||
|
||||
LineSglModel = new LineSglModel();
|
||||
LineSglModel.WeightScanCodeHandle += LineSglModel_WeightScanCodeHandle;
|
||||
@@ -116,7 +120,7 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
var Result = FreeSql.Update<RawProUse>()
|
||||
.Set(p => p.OutTime, DateTime.Now)
|
||||
.Where(p => p.BoxCode == BoxScanCode+",A")//外箱二维码就是外箱扫描码
|
||||
.Where(p => p.BoxCode == BoxScanCode + ",A")//外箱二维码就是外箱扫描码
|
||||
.ExecuteAffrows();
|
||||
if (Result > 0)
|
||||
{
|
||||
@@ -151,7 +155,7 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
KeyencePlcMcNet.Write("D1250", new Int16[30]);
|
||||
});
|
||||
|
||||
try { EventAggregator?.GetEvent<DashboardRefreshEvent>()?.Publish(true); } catch { }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -227,8 +231,19 @@ namespace FATrace.WPLApp.Services
|
||||
|
||||
public ILogService LogService { get; }
|
||||
public IFreeSql FreeSql { get; }
|
||||
public IEventAggregator EventAggregator { get; }
|
||||
public SysRunService SysRunService { get; }
|
||||
|
||||
//通信组件
|
||||
private bool _plcConnected;
|
||||
public bool PlcConnected
|
||||
{
|
||||
get { return _plcConnected; }
|
||||
private set { _plcConnected = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基恩士通信组件
|
||||
/// </summary>
|
||||
private KeyenceMcNet KeyencePlcMcNet { get; set; } = null;
|
||||
|
||||
private string _WeightScanCode;
|
||||
@@ -304,6 +319,7 @@ namespace FATrace.WPLApp.Services
|
||||
// 读取 PLC 配置(大小写敏感,采用公共 ConfigHelper 并提供默认值)
|
||||
string PLCIP = ComConfigHelper.GetStringOrDefault("PLCIP", "192.0.1.10");
|
||||
int Port = ComConfigHelper.GetIntOrDefault("PLCPort", 5000);
|
||||
try { SysRunService.PlcIp = PLCIP; SysRunService.PlcPort = Port; } catch { }
|
||||
|
||||
//PLC通信的连接
|
||||
KeyencePlcMcNet = new KeyenceMcNet();
|
||||
@@ -317,16 +333,22 @@ namespace FATrace.WPLApp.Services
|
||||
if (connect.IsSuccess)//初始连接状态的显示判断
|
||||
{
|
||||
Console.WriteLine($"PLC-连接 OK");
|
||||
PlcConnected = true;
|
||||
try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { }
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(connect.Message + Environment.NewLine + "ErrorCode: " + connect.ErrorCode);
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "连接失败"; } catch { }
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogService.Error(String.Format("ErrSource : {0} ErrMsg : {1}", ex.StackTrace.ToString(), ex.Message.ToString()));
|
||||
//insertLogToDBDelegate.BeginInvoke(1, "UpdateUIMethod异常", ex.Message.ToString() + ex.StackTrace.Substring(ex.StackTrace.Length - 40, 40), null, null);
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,6 +468,14 @@ namespace FATrace.WPLApp.Services
|
||||
if (OperateResultBoxScanSgl.IsSuccess)
|
||||
{
|
||||
LineSglModel.BoxScanCodeEnable = OperateResultBoxScanSgl.Content;
|
||||
|
||||
PlcConnected = true;
|
||||
try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { }
|
||||
}
|
||||
else
|
||||
{
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "连接失败"; } catch { }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -488,11 +518,16 @@ namespace FATrace.WPLApp.Services
|
||||
if (!ret.IsSuccess)
|
||||
{
|
||||
LogService.Warn($"PLC重连失败: {ret.Message} (Code: {ret.ErrorCode})");
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
else { PlcConnected = true; try { SysRunService.PlcLinkState = true; SysRunService.SysRunState.ComState = 1; SysRunService.SysRunState.ComMsg = "正常"; } catch { } }
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogService.Error($"PLC重连异常: {ex.Message}");
|
||||
PlcConnected = false;
|
||||
try { SysRunService.PlcLinkState = false; SysRunService.SysRunState.ComState = 2; SysRunService.SysRunState.ComMsg = "异常"; } catch { }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user