增加了初始弹窗,但是没有成功
更改了CAN和LIN协调 更改了配置程序的名称顺序
This commit is contained in:
@@ -36,7 +36,9 @@ namespace CapMachine.Wpf.Services
|
||||
/// </summary>
|
||||
private IEventAggregator _EventAggregator { get; set; }
|
||||
public AlarmService AlarmService { get; }
|
||||
public ConfigService ConfigService { get; }
|
||||
public CanDriveService CanDriveService { get; }
|
||||
public LinDriveService LinDriveService { get; }
|
||||
public SysRunService SysRunService { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -74,10 +76,10 @@ namespace CapMachine.Wpf.Services
|
||||
/// </summary>
|
||||
private bool IsValueShow { get; set; } = true;
|
||||
|
||||
///// <summary>
|
||||
///// 仪表数据集合
|
||||
///// </summary>
|
||||
//public List<MeterRtDataModel> ListMeterRtData { get; set; }
|
||||
/// <summary>
|
||||
/// 系统拓展数据
|
||||
/// </summary>
|
||||
public SysExdInfo CurSysExdInfo { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Tag数据集合
|
||||
@@ -108,7 +110,8 @@ namespace CapMachine.Wpf.Services
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
/// <param name="eventAggregator"></param>
|
||||
public MachineRtDataService(IEventAggregator eventAggregator, AlarmService alarmService, CanDriveService canDriveService, SysRunService sysRunService)//, AlarmService alarmService
|
||||
public MachineRtDataService(IEventAggregator eventAggregator, AlarmService alarmService, ConfigService configService,
|
||||
CanDriveService canDriveService, LinDriveService linDriveService, SysRunService sysRunService)//, AlarmService alarmService
|
||||
{
|
||||
//ConcurrentDictionary<DateTime, RecordInfo> keyValuePairs = new ConcurrentDictionary<DateTime, RecordInfo>();
|
||||
|
||||
@@ -122,7 +125,9 @@ namespace CapMachine.Wpf.Services
|
||||
//事件服务
|
||||
_EventAggregator = eventAggregator;
|
||||
AlarmService = alarmService;
|
||||
ConfigService = configService;
|
||||
CanDriveService = canDriveService;
|
||||
LinDriveService = linDriveService;
|
||||
SysRunService = sysRunService;
|
||||
|
||||
//秒触发一次
|
||||
@@ -132,6 +137,7 @@ namespace CapMachine.Wpf.Services
|
||||
CycleTimer.Enabled = true;
|
||||
|
||||
|
||||
|
||||
#region 标签管理
|
||||
|
||||
//【测试】
|
||||
@@ -637,7 +643,7 @@ namespace CapMachine.Wpf.Services
|
||||
Name = "通讯母线电压[V]",//名称带单位
|
||||
NameNoUnit = "通讯母线电压",//无单位名称
|
||||
EnName = "ComCapBusVol",//英文名称
|
||||
Group = "CAN",//分组
|
||||
Group = "CANLIN",//分组
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
Unit = "V",
|
||||
@@ -656,7 +662,7 @@ namespace CapMachine.Wpf.Services
|
||||
Name = "通讯母线电流[A]",//名称带单位
|
||||
NameNoUnit = "通讯母线电流",//无单位名称
|
||||
EnName = "ComCapBusCur",//英文名称
|
||||
Group = "CAN",//分组
|
||||
Group = "CANLIN",//分组
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
Unit = "A",
|
||||
@@ -675,7 +681,7 @@ namespace CapMachine.Wpf.Services
|
||||
Name = "通讯相电流[A]",//名称带单位
|
||||
NameNoUnit = "通讯相电流",//无单位名称
|
||||
EnName = "ComCapPhCur",//英文名称
|
||||
Group = "CAN",//分组
|
||||
Group = "CANLIN",//分组
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
Unit = "A",
|
||||
@@ -694,7 +700,7 @@ namespace CapMachine.Wpf.Services
|
||||
Name = "通讯功率[W]",//名称带单位
|
||||
NameNoUnit = "通讯功率",//无单位名称
|
||||
EnName = "ComCapPw",//英文名称
|
||||
Group = "CAN",//分组
|
||||
Group = "CANLIN",//分组
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
Unit = "W",
|
||||
@@ -713,7 +719,7 @@ namespace CapMachine.Wpf.Services
|
||||
Name = "通讯芯片温度[℃]",//名称带单位
|
||||
NameNoUnit = "通讯芯片温度",//无单位名称
|
||||
EnName = "ComCapChipTemp",//英文名称
|
||||
Group = "CAN",//分组
|
||||
Group = "CANLIN",//分组
|
||||
MinValue = 0,
|
||||
MaxValue = 100,
|
||||
Unit = "℃",
|
||||
@@ -858,7 +864,10 @@ namespace CapMachine.Wpf.Services
|
||||
|
||||
InitialPLCCom();
|
||||
|
||||
PubRtDataStart();
|
||||
//拓展的参数信息
|
||||
CurSysExdInfo = new SysExdInfo(SiemensDrive);
|
||||
|
||||
//PubRtDataStart();
|
||||
}
|
||||
|
||||
|
||||
@@ -1060,6 +1069,11 @@ namespace CapMachine.Wpf.Services
|
||||
/// </summary>
|
||||
private OperateResult<bool[]> OperateResultAlarm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 时间诊断
|
||||
/// </summary>
|
||||
private Stopwatch DiagnosticsTime { get; set; } = new Stopwatch();
|
||||
|
||||
/// <summary>
|
||||
/// PLC扫描线程
|
||||
/// </summary>
|
||||
@@ -1071,10 +1085,11 @@ namespace CapMachine.Wpf.Services
|
||||
|
||||
while (ThreadEnable)
|
||||
{
|
||||
await Task.Delay(10);
|
||||
//await Task.Delay(5);
|
||||
await Task.CompletedTask;
|
||||
|
||||
//DiagnosticsTime.Reset();
|
||||
//DiagnosticsTime.Start();
|
||||
DiagnosticsTime.Reset();
|
||||
DiagnosticsTime.Start();
|
||||
try
|
||||
{
|
||||
//TagInfo.RtValue.Value++;
|
||||
@@ -1114,13 +1129,34 @@ namespace CapMachine.Wpf.Services
|
||||
TagManger.GetTagInfoValueByName<short>(itemTag.Value.Name)!.IsShow = IsValueShow;
|
||||
|
||||
////仿真数据
|
||||
////TagManger.GetTagInfoValueByName<short>(itemTag.Value.Name)!.Value = (short)Random.Next(1, 100);
|
||||
////TagManger.GetTagByName<short>(itemTag.Value.Name).EngPvValue = (short)Random.Next(1, 100) * 1.0 / TagManger.GetTagByName<short>(itemTag.Value.Name)!.Precision;
|
||||
////LinkState = false;
|
||||
//TagManger.GetTagInfoValueByName<short>(itemTag.Value.Name)!.Value = (short)Random.Next(1, 100);
|
||||
//TagManger.GetTagByName<short>(itemTag.Value.Name).EngPvValue = (short)Random.Next(1, 100) * 1.0 / TagManger.GetTagByName<short>(itemTag.Value.Name)!.Precision;
|
||||
//LinkState = false;
|
||||
|
||||
//PLC 数据
|
||||
if (!string.IsNullOrEmpty(itemTag.Value.PVAddress))
|
||||
{
|
||||
//反写CANLIN速度数据到PLC,提前写入PLC,后面会回读PV值
|
||||
if (itemTag.Value.NameNoUnit == "转速")
|
||||
{
|
||||
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
|
||||
{
|
||||
case CanLinEnum.Can:
|
||||
//通信转速 Dbc中间配置名称的转速数据读取出来 给PLC
|
||||
SiemensDrive.Write(itemTag.Value.PVAddress, (short)CanDriveService.GetDbcSpeedValueBySpeedName("通讯转速"));
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
case CanLinEnum.Lin:
|
||||
//通信转速 Dbc中间配置名称的转速数据读取出来 给PLC
|
||||
SiemensDrive.Write(itemTag.Value.PVAddress, (short)LinDriveService.GetLdfSpeedValueBySpeedName("通讯转速"));
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
OperateResultShort = SiemensDrive.ReadInt16(itemTag.Value.PVAddress);
|
||||
if (OperateResultShort.IsSuccess)
|
||||
{
|
||||
@@ -1133,17 +1169,34 @@ namespace CapMachine.Wpf.Services
|
||||
LinkState = false;
|
||||
}
|
||||
|
||||
//CAN数据读取 //回读CAN通信的数据到集合中
|
||||
//CAN组合并且在循环接收数据中时,才读取数据
|
||||
if (itemTag.Value.Group == "CAN")
|
||||
//根据CANLIN的选择,读取对应的解析实时数据更新到数据中心,这些数据相当于都是PV的实时数据
|
||||
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
|
||||
{
|
||||
//回读CAN通信的DBC集合数据到集合中
|
||||
itemTag.Value.EngPvValue = CanDriveService.GetDbcValueByName(itemTag.Value.NameNoUnit);
|
||||
case CanLinEnum.Can:
|
||||
//CAN数据读取 //回读CAN通信的数据到集合中
|
||||
//CAN组合并且在循环接收数据中时,才读取数据
|
||||
if (itemTag.Value.Group == "CANLIN")
|
||||
{
|
||||
//回读CAN通信的DBC集合数据到集合中
|
||||
itemTag.Value.EngPvValue = CanDriveService.GetDbcValueByName(itemTag.Value.NameNoUnit);
|
||||
}
|
||||
break;
|
||||
case CanLinEnum.Lin:
|
||||
//LIN数据读取 //回读LIN通信的数据到集合中
|
||||
//LIN组合并且在循环接收数据中时,才读取数据
|
||||
if (itemTag.Value.Group == "CANLIN")
|
||||
{
|
||||
//回读LIN通信的DBC集合数据到集合中
|
||||
itemTag.Value.EngPvValue = LinDriveService.GetLdfValueByName(itemTag.Value.NameNoUnit);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else //地址为空,PLC驱动不读取数据
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(itemTag.Value.SVAddress))
|
||||
@@ -1207,7 +1260,6 @@ namespace CapMachine.Wpf.Services
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//循环读取手自动切换
|
||||
foreach (var item in ListHandSwitchData)
|
||||
{
|
||||
@@ -1218,7 +1270,12 @@ namespace CapMachine.Wpf.Services
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//拓展信息的展示
|
||||
foreach (var itemQuickTag in CurSysExdInfo.QuickTags)
|
||||
{
|
||||
itemQuickTag.OperateResultSource = SiemensDrive.Read(itemQuickTag.ValueAddress, itemQuickTag.ByteLength);
|
||||
}
|
||||
CurSysExdInfo.SumRunTime();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -1227,9 +1284,9 @@ namespace CapMachine.Wpf.Services
|
||||
|
||||
}
|
||||
|
||||
|
||||
//DiagnosticsTime.Stop();
|
||||
//ScanRtTimeinfo = $"电表:{DiagnosticsTime.Elapsed.TotalMilliseconds.ToString()}";
|
||||
DiagnosticsTime.Stop();
|
||||
ConfigService.PlcCycleTime = (int)DiagnosticsTime.Elapsed.TotalMilliseconds;
|
||||
//Console.WriteLine($"扫描时间:{DiagnosticsTime.Elapsed.TotalMilliseconds.ToString()}");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user