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