MachineRunState1移动到ProRuntimeService
This commit is contained in:
@@ -41,7 +41,7 @@ namespace CapMachine.Wpf.ChannelModel
|
||||
/// <summary>
|
||||
/// 值
|
||||
/// </summary>
|
||||
public int? SV { get; set; }
|
||||
public int SV { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PID的配置信息
|
||||
|
||||
@@ -1372,27 +1372,7 @@ namespace CapMachine.Wpf.Services
|
||||
TagManger.GetTagByName<short>(itemTag.Value.Name)!.EngSvValue = OperateResultSVShort.Content * 1.0 / TagManger.GetTagByName<short>(itemTag.Value.Name)!.Precision;
|
||||
LinkState = true;
|
||||
|
||||
//在运行时,更新速度的SV的值
|
||||
if (itemTag.Value.Name == "转速[rpm]" && SysRunService.MachineRunState1.RunStateMsg == "运行")
|
||||
{
|
||||
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
|
||||
{
|
||||
case CanLinEnum.Can:
|
||||
//获取PLC的SV数据 更新SV的速度值到压缩机
|
||||
CanDriveService.UpdateSpeedCmdData(itemTag!.Value.EngSvValue);
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
case CanLinEnum.Lin:
|
||||
//获取PLC的SV数据 更新SV的速度值到压缩机
|
||||
LinDriveService.UpdateSpeedCmdData(itemTag!.Value.EngSvValue);
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
////更新SV的速度值
|
||||
//CanDriveService.UpdateSpeedCmdData(TagManger.GetTagByName<short>(itemTag.Value.Name)!.EngSvValue);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1614,6 +1594,9 @@ namespace CapMachine.Wpf.Services
|
||||
//Sv
|
||||
var SvResult = SiemensDrive.Write(CurMeterInfo!.SvAddress, (short)ProRunChannelData.SV!);
|
||||
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
|
||||
//速度SV到压缩机
|
||||
SendSpeedSvToCap(ProRunChannelData.SV);
|
||||
|
||||
//Pid
|
||||
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
|
||||
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
|
||||
@@ -1634,6 +1617,8 @@ namespace CapMachine.Wpf.Services
|
||||
//Sv
|
||||
var SvResult = SiemensDrive.Write(CurMeterInfo!.SvAddress, (short)ProRunChannelData.SV!);
|
||||
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
|
||||
//速度SV到压缩机
|
||||
SendSpeedSvToCap(ProRunChannelData.SV);
|
||||
//Pid
|
||||
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
|
||||
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
|
||||
@@ -1649,6 +1634,9 @@ namespace CapMachine.Wpf.Services
|
||||
//Sv
|
||||
var SvResult = SiemensDrive.Write(CurMeterInfo!.SvAddress, (short)ProRunChannelData.SV!);
|
||||
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
|
||||
//速度SV到压缩机
|
||||
SendSpeedSvToCap(ProRunChannelData.SV);
|
||||
|
||||
//Limit
|
||||
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
|
||||
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
|
||||
@@ -1662,6 +1650,9 @@ namespace CapMachine.Wpf.Services
|
||||
//Sv
|
||||
var SvResult = SiemensDrive.Write(CurMeterInfo!.SvAddress, (short)ProRunChannelData.SV!);
|
||||
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
|
||||
//速度SV到压缩机
|
||||
SendSpeedSvToCap(ProRunChannelData.SV);
|
||||
|
||||
}
|
||||
break;
|
||||
case RunStepType.LimitPid:
|
||||
@@ -1709,6 +1700,9 @@ namespace CapMachine.Wpf.Services
|
||||
//Sv
|
||||
var SvResult = SiemensDrive.Write(CurMeterInfo!.SvAddress, (short)ProRunChannelData.SV!);
|
||||
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
|
||||
//速度SV到压缩机
|
||||
SendSpeedSvToCap(ProRunChannelData.SV);
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -1746,6 +1740,28 @@ namespace CapMachine.Wpf.Services
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送速度SV到压缩机
|
||||
/// </summary>
|
||||
private void SendSpeedSvToCap(int SpeedSv)
|
||||
{
|
||||
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
|
||||
{
|
||||
case CanLinEnum.Can:
|
||||
//获取PLC的SV数据 更新SV的速度值到压缩机
|
||||
CanDriveService.UpdateSpeedCmdData(SpeedSv);
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
case CanLinEnum.Lin:
|
||||
//获取PLC的SV数据 更新SV的速度值到压缩机
|
||||
LinDriveService.UpdateSpeedCmdData(SpeedSv);
|
||||
//itemTag.Value.EngPvValue = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,17 +38,20 @@ namespace CapMachine.Wpf.Services
|
||||
/// <summary>
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
public ProRuntimeService(IFreeSql freeSql, IMapper mapper, IEventAggregator eventAggregator, MachineRtDataService machineRtDataService, ILogService logService)
|
||||
public ProRuntimeService(IFreeSql freeSql, IMapper mapper, IEventAggregator eventAggregator,
|
||||
MachineRtDataService machineRtDataService,ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService,
|
||||
ILogService logService)
|
||||
{
|
||||
FreeSql = freeSql;
|
||||
Mapper = mapper;
|
||||
EventAggregator = eventAggregator;
|
||||
MachineRtDataService = machineRtDataService;
|
||||
|
||||
ConfigService = configService;
|
||||
CanDriveService = canDriveService;
|
||||
LinDriveService = linDriveService;
|
||||
ProRunChannel = MachineRtDataService.ProRunChannel;
|
||||
LogService = logService;
|
||||
|
||||
|
||||
//实例化函数
|
||||
ListProExModel = new List<ProExModel>();
|
||||
#region 初始化程序执行模型
|
||||
@@ -152,9 +155,6 @@ namespace CapMachine.Wpf.Services
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
//从变量集合中加载PLC转制的配置数据
|
||||
ListPlcLoadConfigCell = new List<PlcLoadConfigCell>();
|
||||
foreach (var itemKeyValue in MachineRtDataService.TagManger.DicTags)
|
||||
@@ -191,10 +191,11 @@ namespace CapMachine.Wpf.Services
|
||||
//反写给MachineRtDataService,MachineRtDataService也要写到PLC中
|
||||
MachineRtDataService.ListPlcLoadConfigCell = ListPlcLoadConfigCell;
|
||||
|
||||
|
||||
//驱动实例
|
||||
SiemensDrive = MachineRtDataService.SiemensDrive;
|
||||
|
||||
MachineRunState1 = new MachineRunState("M1", EventAggregator, ConfigService, canDriveService, linDriveService);
|
||||
|
||||
//程序运行实时管道数据监听
|
||||
//Task.Run(() => ListenProRunChannelAction());
|
||||
|
||||
@@ -209,7 +210,9 @@ namespace CapMachine.Wpf.Services
|
||||
public IMapper Mapper { get; }
|
||||
public IEventAggregator EventAggregator { get; }
|
||||
public MachineRtDataService MachineRtDataService { get; }
|
||||
|
||||
public ConfigService ConfigService { get; }
|
||||
public CanDriveService CanDriveService { get; }
|
||||
public LinDriveService LinDriveService { get; }
|
||||
public ILogService LogService { get; }
|
||||
|
||||
/// <summary>
|
||||
@@ -232,6 +235,12 @@ namespace CapMachine.Wpf.Services
|
||||
/// </summary>
|
||||
public List<PlcLoadConfigCell> ListPlcLoadConfigCell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 设备运行状态
|
||||
/// </summary>
|
||||
public MachineRunState MachineRunState1 { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加载选中的程序运行集合
|
||||
/// 目前步骤设置常值,是OK的,但是在斜坡多步骤里面也可以设置 50-50 10秒的常值设置,那么在打点时,上面的两个常值都能识别
|
||||
@@ -3212,9 +3221,11 @@ namespace CapMachine.Wpf.Services
|
||||
private void ProRuntimeService_SpeedRunEndEvent(object? sender, string e)
|
||||
{
|
||||
Console.WriteLine($"【时间】{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")} 【Msg】:程序运行结束 《《《《-------------------");
|
||||
EndProRun();
|
||||
|
||||
//EndProRun();
|
||||
|
||||
EventAggregator.GetEvent<ProRunEvent>().Publish(new ProRunEventMsg() { Machine = "M1", Msg = "执行完毕" });
|
||||
|
||||
MachineRunState1.RunStateMsg = "执行完毕";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,11 +10,11 @@ using System.Threading.Tasks;
|
||||
namespace CapMachine.Wpf.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// 系统
|
||||
/// 系统运行服务
|
||||
/// </summary>
|
||||
public class SysRunService : BindableBase
|
||||
{
|
||||
public SysRunService(IEventAggregator eventAggregator,ConfigService configService,CanDriveService canDriveService,LinDriveService linDriveService)
|
||||
public SysRunService(IEventAggregator eventAggregator, ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService)
|
||||
{
|
||||
// 创建一个定时器,设置间隔时间为2000毫秒(即2秒)
|
||||
CurTimer = new System.Timers.Timer(5000);
|
||||
@@ -28,16 +28,9 @@ namespace CapMachine.Wpf.Services
|
||||
ConfigService = configService;
|
||||
CanDriveService = canDriveService;
|
||||
LinDriveService = linDriveService;
|
||||
MachineRunState1 = new MachineRunState("M1", EventAggregator, ConfigService,canDriveService,linDriveService);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备运行状态
|
||||
/// </summary>
|
||||
public MachineRunState MachineRunState1 { get; set; }
|
||||
|
||||
|
||||
private void CurTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
CurDateTime = DateTime.Now;
|
||||
|
||||
@@ -10,16 +10,18 @@ namespace CapMachine.Wpf.ViewModels
|
||||
{
|
||||
public class FooterViewModel : NavigationViewModel
|
||||
{
|
||||
public FooterViewModel(DataRecordService dataRecordService,ConfigService configService,MachineRtDataService machineRtDataService,SysRunService sysService)
|
||||
public FooterViewModel(DataRecordService dataRecordService,ConfigService configService,ProRuntimeService proRuntimeService, MachineRtDataService machineRtDataService,SysRunService sysService)
|
||||
{
|
||||
DataRecordService = dataRecordService;
|
||||
ConfigService = configService;
|
||||
ProRuntimeService = proRuntimeService;
|
||||
MachineRtDataService = machineRtDataService;
|
||||
SysRunService = sysService;
|
||||
}
|
||||
|
||||
public DataRecordService DataRecordService { get; }
|
||||
public ConfigService ConfigService { get; }
|
||||
public ProRuntimeService ProRuntimeService { get; }
|
||||
public MachineRtDataService MachineRtDataService { get; }
|
||||
public SysRunService SysRunService { get; }
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
{
|
||||
case "开始":
|
||||
//状态机运行 用状态机的状态判断逻辑
|
||||
if (this.SysRunServer.MachineRunState1.FireStart())
|
||||
if (this.ProRuntimeService.MachineRunState1.FireStart())
|
||||
{
|
||||
//程序步骤执行开始运行
|
||||
ProRuntimeService.StartProRun();
|
||||
@@ -247,7 +247,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
break;
|
||||
case "结束":
|
||||
//状态机结束 用状态机的状态判断逻辑
|
||||
if (this.SysRunServer.MachineRunState1.FireEnd())
|
||||
if (this.ProRuntimeService.MachineRunState1.FireEnd())
|
||||
{
|
||||
//程序步骤执行结束运行
|
||||
ProRuntimeService.EndProRun();
|
||||
@@ -277,7 +277,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
break;
|
||||
case "复位":
|
||||
//状态机 复位 用状态机的状态判断逻辑
|
||||
if (this.SysRunServer.MachineRunState1.FireReset())
|
||||
if (this.ProRuntimeService.MachineRunState1.FireReset())
|
||||
{
|
||||
//程序步骤执行结束运行
|
||||
ProRuntimeService.EndProRun();
|
||||
@@ -315,7 +315,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
case "暂停":
|
||||
|
||||
//状态机 暂停 用状态机的状态判断逻辑
|
||||
if (this.SysRunServer.MachineRunState1.FirePause())
|
||||
if (this.ProRuntimeService.MachineRunState1.FirePause())
|
||||
{
|
||||
//程序步骤执行暂停运行
|
||||
ProRuntimeService.PauseProRun();
|
||||
@@ -327,7 +327,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
break;
|
||||
case "继续":
|
||||
//状态机 继续 用状态机的状态判断逻辑
|
||||
if (this.SysRunServer.MachineRunState1.FireContinue())
|
||||
if (this.ProRuntimeService.MachineRunState1.FireContinue())
|
||||
{
|
||||
//程序步骤执行继续运行
|
||||
ProRuntimeService.ContinueProRun();
|
||||
|
||||
@@ -2374,7 +2374,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
//ProParsSongZhiHelper.LoadDataToPLC(MachineRtDataService.SiemensDrive, ReturnPlcParsData);
|
||||
|
||||
//下载完成的话,则标记状态
|
||||
SysRunService.MachineRunState1.IsProLoad = true;
|
||||
ProRuntimeService.MachineRunState1.IsProLoad = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,13 +21,14 @@ namespace CapMachine.Wpf.ViewModels
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
public QuickMeterStepViewModel(IDialogService dialogService, IFreeSql freeSql, IEventAggregator eventAggregator,
|
||||
IRegionManager regionManager, MachineRtDataService machineRtDataService, SysRunService sysRunService)
|
||||
IRegionManager regionManager, MachineRtDataService machineRtDataService, SysRunService sysRunService,ProRuntimeService proRuntimeService)
|
||||
{
|
||||
FreeSql = freeSql;
|
||||
EventAggregator = eventAggregator;
|
||||
RegionManager = regionManager;
|
||||
this.MachineRtDataService = machineRtDataService;
|
||||
SysRunService = sysRunService;
|
||||
ProRuntimeService = proRuntimeService;
|
||||
|
||||
//MachineDataService = machineDataService;
|
||||
DialogService = dialogService;
|
||||
@@ -77,6 +78,7 @@ namespace CapMachine.Wpf.ViewModels
|
||||
public IRegionManager RegionManager { get; }
|
||||
public MachineRtDataService MachineRtDataService { get; }
|
||||
public SysRunService SysRunService { get; }
|
||||
public ProRuntimeService ProRuntimeService { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 弹窗服务
|
||||
@@ -321,14 +323,14 @@ namespace CapMachine.Wpf.ViewModels
|
||||
if (MachineRtDataService.LinkState==false)
|
||||
{
|
||||
MessageBox.Show("当前PLC链接失败,无法下载程序,但会标记下载!", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Hand);
|
||||
SysRunService.MachineRunState1.IsProLoad = true;
|
||||
ProRuntimeService.MachineRunState1.IsProLoad = true;
|
||||
return;
|
||||
}
|
||||
|
||||
ProParsHelperQuick.GetPlcParsData(ListQuickMeterStepDto.ToList(), this.MachineRtDataService.SiemensDrive);
|
||||
|
||||
//下载完成的话,则标记状态
|
||||
SysRunService.MachineRunState1.IsProLoad = true;
|
||||
ProRuntimeService.MachineRunState1.IsProLoad = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
Margin="5,0"
|
||||
FontSize="16"
|
||||
Foreground="White"
|
||||
Text="{Binding SysRunService.MachineRunState1.RunStateMsg}" />
|
||||
Text="{Binding ProRuntimeService.MachineRunState1.RunStateMsg}" />
|
||||
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
@@ -532,7 +532,7 @@
|
||||
FontSize="30"
|
||||
FontWeight="Bold"
|
||||
Foreground="LimeGreen"
|
||||
Text="{Binding SysRunServer.MachineRunState1.RunStateMsg}" />
|
||||
Text="{Binding ProRuntimeService.MachineRunState1.RunStateMsg}" />
|
||||
|
||||
</StackPanel>
|
||||
</materialDesign:Card>
|
||||
|
||||
Reference in New Issue
Block a user