From 121434ec2ad5708aac3d90875a3fbd2ca08f61ee Mon Sep 17 00:00:00 2001
From: haoliang <821644@qq.com>
Date: Wed, 13 May 2026 11:59:46 +0800
Subject: [PATCH] =?UTF-8?q?FANUC=E6=A8=A1=E6=8B=9F=E5=99=A8Tag=E5=AF=B9?=
=?UTF-8?q?=E9=BD=90=EF=BC=9A=E5=88=A0=E9=99=A4Tag11(=E6=93=8D=E4=BD=9C?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F)=EF=BC=8C=E6=96=B0=E5=A2=9ETag24(=E5=88=87?=
=?UTF-8?q?=E5=89=8A=E6=97=B6=E9=97=B4)/Tag25(=E5=BE=AA=E7=8E=AF=E6=97=B6?=
=?UTF-8?q?=E9=97=B4)/Tag26(=E5=8A=A0=E5=B7=A5=E7=8A=B6=E6=80=81)=EF=BC=8C?=
=?UTF-8?q?Tag=E6=95=B0=E4=BB=8E10=E4=B8=AA=E5=A2=9E=E8=87=B312=E4=B8=AA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/CncSimulator/Core/SimulatorServer.cs | 6 ++++--
src/CncSimulator/Device/DeviceSimulator.cs | 4 ++++
src/CncSimulator/Device/DeviceState.cs | 6 ++++++
.../Generator/FanucDataGenerator.cs | 17 +++++++++++++----
4 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/src/CncSimulator/Core/SimulatorServer.cs b/src/CncSimulator/Core/SimulatorServer.cs
index 0b7f9b2..8fc57a2 100644
--- a/src/CncSimulator/Core/SimulatorServer.cs
+++ b/src/CncSimulator/Core/SimulatorServer.cs
@@ -358,9 +358,11 @@ namespace CncSimulator.Core
new { id = "Tag7", desc = "当前加工程序内容", value = "" },
new { id = "Tag8", desc = "当前加工零件数", value = "0.00000" },
new { id = "Tag9", desc = "运行状态", value = "0.00000" },
- new { id = "Tag11", desc = "操作模式", value = "0.00000" },
new { id = "Tag22", desc = "开机时间", value = "0.00000" },
- new { id = "Tag23", desc = "运行时间", value = "0.00000" }
+ new { id = "Tag23", desc = "运行时间", value = "0.00000" },
+ new { id = "Tag24", desc = "切削时间", value = "0.00000" },
+ new { id = "Tag25", desc = "循环时间", value = "0.00000" },
+ new { id = "Tag26", desc = "加工状态", value = "" }
};
foreach (var t in offlineTags)
diff --git a/src/CncSimulator/Device/DeviceSimulator.cs b/src/CncSimulator/Device/DeviceSimulator.cs
index a325e8e..2332c18 100644
--- a/src/CncSimulator/Device/DeviceSimulator.cs
+++ b/src/CncSimulator/Device/DeviceSimulator.cs
@@ -37,6 +37,8 @@ namespace CncSimulator.Device
OperateMode = 10,
PowerOnTime = _rng.Next(20000000, 24000000),
RunTime = _rng.Next(15000, 20000),
+ CuttingTime = _rng.Next(5000, 12000),
+ CycleTime = _rng.Next(3000, 8000),
ProgramContent = "",
CurrentScenario = "idle",
ScenarioTick = 0,
@@ -133,6 +135,8 @@ namespace CncSimulator.Device
_state.OperateMode = 1;
_state.RunTime += interval;
_state.PowerOnTime += interval;
+ _state.CuttingTime += interval;
+ _state.CycleTime += interval;
_state.ProgramContent = "<" + _state.ProgramName + ">\nG40G49G80\n( SIMULATOR )";
break;
diff --git a/src/CncSimulator/Device/DeviceState.cs b/src/CncSimulator/Device/DeviceState.cs
index b50c5c7..03ce5d7 100644
--- a/src/CncSimulator/Device/DeviceState.cs
+++ b/src/CncSimulator/Device/DeviceState.cs
@@ -44,6 +44,12 @@ namespace CncSimulator.Device
/// 运行累计时间(秒)
public decimal RunTime { get; set; } = 0;
+ /// 切削累计时间(秒)
+ public decimal CuttingTime { get; set; } = 0;
+
+ /// 循环累计时间(秒)
+ public decimal CycleTime { get; set; } = 0;
+
/// 加工程序内容片段
public string ProgramContent { get; set; } = "";
diff --git a/src/CncSimulator/Generator/FanucDataGenerator.cs b/src/CncSimulator/Generator/FanucDataGenerator.cs
index 2918984..982f382 100644
--- a/src/CncSimulator/Generator/FanucDataGenerator.cs
+++ b/src/CncSimulator/Generator/FanucDataGenerator.cs
@@ -6,7 +6,7 @@ namespace CncSimulator.Generator
{
///
/// FANUC品牌JSON数据生成器。
- /// 根据设备状态生成10个Tag的FANUC格式JSON,与实际FANUC采集数据结构一致。
+ /// 根据设备状态生成12个Tag的FANUC格式JSON,与实际FANUC采集数据结构一致。
///
public class FanucDataGenerator : IBrandGenerator
{
@@ -27,7 +27,7 @@ namespace CncSimulator.Generator
return device;
}
- /// 生成10个Tag的JArray
+ /// 生成12个Tag的JArray
private JArray GenerateTags(DeviceState state)
{
var tags = new JArray();
@@ -68,7 +68,7 @@ namespace CncSimulator.Generator
});
}
- // 严格按实际FANUC采集数据的10个Tag生成
+ // 严格按实际FANUC采集数据的12个Tag生成
AddNumericTag("_io_status", "设备状态", state.DeviceStatus);
AddNumericTag("Tag1", "加工零件总数", state.TotalPartCount);
AddStringTag("Tag5", "执行的NC主程序名", state.ProgramName);
@@ -79,11 +79,20 @@ namespace CncSimulator.Generator
: state.ProgramContent);
AddNumericTag("Tag8", "当前加工零件数", state.PartCount);
AddNumericTag("Tag9", "运行状态", state.RunStatus);
- AddNumericTag("Tag11", "操作模式", state.OperateMode);
AddNumericTag("Tag22", "开机时间", state.PowerOnTime);
AddNumericTag("Tag23", "运行时间", state.RunTime);
+ AddNumericTag("Tag24", "切削时间", state.CuttingTime);
+ AddNumericTag("Tag25", "循环时间", state.CycleTime);
+ AddStringTag("Tag26", "加工状态", GetRandomMachiningStatus());
return tags;
}
+
+ /// 随机返回加工状态: G01/G02/G03
+ private string GetRandomMachiningStatus()
+ {
+ string[] statuses = { "G01", "G02", "G03" };
+ return statuses[_rng.Next(statuses.Length)];
+ }
}
}