✨ feat(*): 添加扫码枪启动探活、全局退出助手及 README

- 添加扫码枪串口启动探活,检测端口占用并更新 UI 状态
- 新增 ShutdownHelper 安全停止 Host 扩展方法
- 新增 README.md 项目说明文档
- 更新 WorkflowHostedService 启动探活逻辑
- 补充 ShutdownHelper 与 WorkflowHostedService 单元测试
- 优化 DashboardPage 与 SystemSettingsPage 界面布局
- 调整 ModbusTcpPlcService 监控镜像读取逻辑
This commit is contained in:
2026-04-19 14:29:07 +08:00
parent 8f74e07c66
commit d70b94e904
26 changed files with 1564 additions and 827 deletions

View File

@@ -66,11 +66,6 @@ public sealed class PlcOptions
/// </summary>
public int ConnectTimeoutMs { get; set; } = 3000;
/// <summary>
/// 获取或设置 PC 在线心跳翻转周期,单位为毫秒。
/// </summary>
public int HeartbeatIntervalMs { get; set; } = 500;
/// <summary>
/// 获取或设置放行脉冲持续时间,单位为毫秒。
/// </summary>
@@ -275,21 +270,6 @@ public sealed class AndonOptions
/// </summary>
public sealed class WorkflowOptions
{
/// <summary>
/// 获取或设置启动流程前是否要求 PLC 就绪。
/// </summary>
public bool RequirePlcReady { get; set; } = true;
/// <summary>
/// 获取或设置启动流程前是否要求自动模式。
/// </summary>
public bool RequireAutoMode { get; set; } = true;
/// <summary>
/// 获取或设置启动流程前是否要求工位使能。
/// </summary>
public bool RequireStationEnable { get; set; } = true;
/// <summary>
/// 获取或设置故障后是否必须人工复位。
/// </summary>
@@ -327,35 +307,20 @@ public sealed class SecurityOptions
/// </summary>
public sealed class PlcInputAddressOptions
{
/// <summary>
/// 获取或设置 PLC 就绪点位地址。
/// </summary>
public int PlcReady { get; set; } = 10001;
/// <summary>
/// 获取或设置 PCB 到位点位地址。
/// </summary>
public int PcbArrived { get; set; } = 10002;
public int PcbArrived { get; set; } = 10001;
/// <summary>
/// 获取或设置 PLC 复位点位地址。
/// </summary>
public int PlcReset { get; set; } = 10003;
public int PlcReset { get; set; } = 10002;
/// <summary>
/// 获取或设置 PLC 放行应答点位地址。
/// </summary>
public int PlcAckRelease { get; set; } = 10004;
/// <summary>
/// 获取或设置自动模式点位地址。
/// </summary>
public int AutoMode { get; set; } = 10005;
/// <summary>
/// 获取或设置工位使能点位地址。
/// </summary>
public int StationEnable { get; set; } = 10006;
public int PlcAckRelease { get; set; } = 10003;
}
/// <summary>
@@ -363,55 +328,15 @@ public sealed class PlcInputAddressOptions
/// </summary>
public sealed class PlcOutputAddressOptions
{
/// <summary>
/// 获取或设置 PC 在线心跳位地址。
/// </summary>
public int PcOnline { get; set; } = 51;
/// <summary>
/// 获取或设置 PC 忙碌位地址。
/// </summary>
public int PcBusy { get; set; } = 52;
/// <summary>
/// 获取或设置扫码成功位地址。
/// </summary>
public int ScanOk { get; set; } = 53;
/// <summary>
/// 获取或设置扫码失败位地址。
/// </summary>
public int ScanNg { get; set; } = 54;
/// <summary>
/// 获取或设置文件存在位地址。
/// </summary>
public int FileFound { get; set; } = 55;
/// <summary>
/// 获取或设置文件未找到位地址。
/// </summary>
public int FileNotFound { get; set; } = 56;
/// <summary>
/// 获取或设置报警位地址。
/// </summary>
public int AlarmRaised { get; set; } = 57;
public int PcBusy { get; set; } = 51;
/// <summary>
/// 获取或设置放行位地址。
/// </summary>
public int ReleasePermit { get; set; } = 58;
/// <summary>
/// 获取或设置流程完成位地址。
/// </summary>
public int ProcessDone { get; set; } = 59;
/// <summary>
/// 获取或设置系统故障位地址。
/// </summary>
public int SystemFault { get; set; } = 60;
public int ReleasePermit { get; set; } = 52;
}
/// <summary>
@@ -425,22 +350,4 @@ public sealed class PlcRegisterAddressOptions
public int ResultCode { get; set; } = 40001;
/// <summary>
/// 获取或设置扫码次数寄存器地址。
/// </summary>
public int ScanTryCount { get; set; } = 40002;
/// <summary>
/// 获取或设置 SFTP 查询次数寄存器地址。
/// </summary>
public int SftpTryCount { get; set; } = 40003;
/// <summary>
/// 获取或设置报警代码寄存器地址。
/// </summary>
public int AlarmCode { get; set; } = 40004;
/// <summary>
/// 获取或设置流程状态代码寄存器地址。
/// </summary>
public int FlowStateCode { get; set; } = 40005;
}