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)]; + } } }