增加了初始弹窗,但是没有成功

更改了CAN和LIN协调
更改了配置程序的名称顺序
This commit is contained in:
2025-01-11 12:04:34 +08:00
parent 620c5e8178
commit e49a48fb25
53 changed files with 5118 additions and 131 deletions

View File

@@ -0,0 +1,68 @@
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models
{
/// <summary>
/// CAN 和 LIN运行的状态汇总模型
/// </summary>
public class CanLinRunStateModel:BindableBase
{
private CanLinEnum _CurSysSelectedCanLin;
/// <summary>
/// 当前系统选中使用的CanLin状态
/// </summary>
public CanLinEnum CurSysSelectedCanLin
{
get { return _CurSysSelectedCanLin; }
set
{
_CurSysSelectedCanLin = value;
switch (value)
{
case CanLinEnum.No:
SelectedCanLinMsg = "无";
CanLinRunState = false;
break;
case CanLinEnum.Can:
SelectedCanLinMsg = "CAN";
CanLinRunState=true;
break;
case CanLinEnum.Lin:
SelectedCanLinMsg = "LIN";
CanLinRunState = true;
break;
default:
break;
}
}
}
private bool _CanLinRunState;
/// <summary>
/// CAN 和 LIN的运行状态
/// </summary>
public bool CanLinRunState
{
get { return _CanLinRunState; }
set { _CanLinRunState = value;RaisePropertyChanged(); }
}
private string? _SelectedCanLinMsg;
/// <summary>
/// CANLIN 选择的字符串
/// </summary>
public string? SelectedCanLinMsg
{
get { return _SelectedCanLinMsg; }
set { _SelectedCanLinMsg = value; RaisePropertyChanged(); }
}
}
}

View File

@@ -54,5 +54,26 @@ namespace CapMachine.Wpf.Models
/// </summary>
Byte = 0,
}
/// <summary>
/// CAN和LIN的选择
/// </summary>
public enum CanLinEnum
{
/// <summary>
/// 没选择
/// </summary>
No = 0,
/// <summary>
/// Can
/// </summary>
Can = 1,
/// <summary>
/// Lin
/// </summary>
Lin = 2,
}
}
}

View File

@@ -0,0 +1,65 @@
using CapMachine.Wpf.Models.Tag;
using HslCommunication.Profinet.Siemens;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models
{
/// <summary>
/// 系统拓展信息
/// 包括运行时间步骤等PLC等其他信息不在实时数据集合中的其他信息
/// </summary>
public class SysExdInfo:BindableBase
{
/// <summary>
/// 实例化函数
/// </summary>
public SysExdInfo(SiemensS7Net siemensS7Net)
{
QuickTags = new List<QuickTag>()
{
new QuickTag(siemensS7Net){ Name="RunTime-Sec",Group="时间",Unit="秒",ValueAddress="VW190",Precision=0,ValueType=ComEnum.DataType.Short,ByteLength=2},
new QuickTag(siemensS7Net){ Name="RunTime-Min",Group="时间",Unit="分",ValueAddress="VW192",Precision=0,ValueType=ComEnum.DataType.Short,ByteLength=2},
new QuickTag(siemensS7Net){ Name="RunTime-Hour",Group="时间",Unit="时",ValueAddress="VW194",Precision=0,ValueType=ComEnum.DataType.Short,ByteLength=2},
};
RunTimeSecQuickTag= QuickTags.Find(x => x.Name == "RunTime-Sec")!;
RunTimeMinQuickTag = QuickTags.Find(x => x.Name == "RunTime-Min")!;
RunTimeHourQuickTag = QuickTags.Find(x => x.Name == "RunTime-Hour")!;
}
private QuickTag RunTimeSecQuickTag { get; set; }
private QuickTag RunTimeMinQuickTag { get; set; }
private QuickTag RunTimeHourQuickTag { get; set; }
/// <summary>
/// 快速标签
/// </summary>
public List<QuickTag> QuickTags { get; set; }
private string _RunTimeMsg;
/// <summary>
/// 运行时间消息
/// </summary>
public string RunTimeMsg
{
get { return _RunTimeMsg; }
set { _RunTimeMsg = value;RaisePropertyChanged(); }
}
/// <summary>
/// 合并运行时间
/// </summary>
public void SumRunTime()
{
RunTimeMsg= RunTimeHourQuickTag.ValueStr + "时" + RunTimeMinQuickTag.ValueStr + "分" + RunTimeSecQuickTag.ValueStr + "秒";
}
}
}

View File

@@ -0,0 +1,147 @@
using HslCommunication;
using HslCommunication.Core;
using HslCommunication.Core.Device;
using HslCommunication.Profinet.Siemens;
using NPOI.SS.Formula.Functions;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 快速和简单的标签
/// </summary>
public class QuickTag : BindableBase
{
public QuickTag(SiemensS7Net deviceTcpNet)
{
SiemensS7Net = deviceTcpNet;
}
/// <summary>
/// 驱动
/// </summary>
public SiemensS7Net SiemensS7Net { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 标签组
/// </summary>
public string? Group { get; set; }
///// <summary>
///// 实时值
///// </summary>
//public abstract IRegisterValue<short> RtValue { get; set; }
private object? _Value;
/// <summary>
/// 实时值
/// </summary>
public object? Value
{
get { return _Value; }
set
{
_Value = value;
ValueStr = value?.ToString();
}
}
private OperateResult<byte[]>? _OperateResultSource;
/// <summary>
/// 原始值实时值
/// </summary>
public OperateResult<byte[]>? OperateResultSource
{
get { return _OperateResultSource; }
set
{
switch (ValueType)
{
case DataType.Short:
Value = SiemensS7Net.ByteTransform.TransInt16(value!.Content, 0);
break;
case DataType.Double:
Value = SiemensS7Net.ByteTransform.TransDouble(value!.Content, 0);
break;
case DataType.String:
Value = SiemensS7Net.ByteTransform.TransString(value!.Content, Encoding.ASCII);
break;
case DataType.Byte:
Value = SiemensS7Net.ByteTransform.TransByte(value!.Content, 0);
break;
default:
break;
}
_OperateResultSource = value;
}
}
/// <summary>
/// 数据类型信息
/// </summary>
public DataType ValueType { get; set; }
/// <summary>
/// 值地址信息
/// </summary>
public string? ValueAddress { get; set; }
/// <summary>
/// 地址信息 Index
/// </summary>
public int Index { get; set; }
/// <summary>
/// 字节长度
/// </summary>
public ushort ByteLength { get; set; }
/// <summary>
/// 最大值
/// </summary>
public double MaxValue { get; set; }
/// <summary>
/// 最小值
/// </summary>
public double MinValue { get; set; }
/// <summary>
/// 精度 到PLC的转换精度/分辨率
/// </summary>
public short Precision { get; set; }
/// <summary>
/// 小数点 展示时用的小数点
/// </summary>
public short DecimalPoint { get; set; }
/// <summary>
/// 单位
/// </summary>
public string? Unit { get; set; }
private string? _ValueStr;
/// <summary>
/// 值的字符串
/// </summary>
public string? ValueStr
{
get { return _ValueStr; }
set { _ValueStr = value; RaisePropertyChanged(); }
}
}
}