MachineRunState1移动到ProRuntimeService
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user