diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs
new file mode 100644
index 00000000..2f271f02
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDamperDto.cs
@@ -0,0 +1,21 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план демпфер
+///
+public class ProcessMapPlanDamperDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// StickSlip
+ ///
+ [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")]
+ public double StickSlip { get; set; }
+
+ ///
+ /// Примечание
+ ///
+ [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
+ public string Note { get; set; } = string.Empty;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs
new file mode 100644
index 00000000..f8e69983
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanDrillTestDto.cs
@@ -0,0 +1,45 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план дрилтест
+///
+public class ProcessMapPlanDrillTestDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// Нагрузка минимальная, т
+ ///
+ [Range(1.0, 30.0, ErrorMessage = "Нагрузка минимальная, т., должно быть в пределах от 1 до 30")]
+ public double WeightOnBitMin { get; set; }
+
+ ///
+ /// Количество шагов по нагрузке
+ ///
+ [Range(1, 5, ErrorMessage = "Количество шагов по нагрузке, должно быть в пределах от 1 до 5")]
+ public int WeightOnBitStepsCount { get; set; }
+
+ ///
+ /// Минимальные обороты на ВСП, об/мин.
+ ///
+ [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")]
+ public int RpmMin { get; set; }
+
+ ///
+ /// Количество шагов оборотов на ВСП, шт.
+ ///
+ [Range(1, 5, ErrorMessage = "Количество шагов оборотов на ВСП, шт., должно быть в пределах от 1 до 5")]
+ public int RpmStepsCount { get; set; }
+
+ ///
+ /// Величина проходки шага, м.
+ ///
+ [Range(0.1, 2.0, ErrorMessage = "Величина проходки шага, м., должно быть в пределах от 0.1 до 2")]
+ public double LengthStep { get; set; }
+
+ ///
+ /// Примечание
+ ///
+ [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символа")]
+ public string Note { get; set; } = string.Empty;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs
new file mode 100644
index 00000000..b444d59a
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanOscillationDto.cs
@@ -0,0 +1,51 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план осцилляция
+///
+public class ProcessMapPlanOscillationDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// Оптимальный угол осцилляции, градусы
+ ///
+ [Range(0.0, 6000.0, ErrorMessage = "Оптимальный угол осцилляции, градусы, должно быть в пределах от 0 до 6000")]
+ public double OptimalOscillationAngle { get; set; }
+
+ ///
+ /// Скорость вправо, об/мин
+ ///
+ [Range(0.0, 270.0, ErrorMessage = "Скорость вправо, об/мин, должно быть в пределах от 0 до 270")]
+ public double RpmRight { get; set; }
+
+ ///
+ /// Скорость влево, об/мин
+ ///
+ [Range(0.0, 270.0, ErrorMessage = "Скорость влево, об/мин, должно быть в пределах от 0 до 270")]
+ public double RpmLeft { get; set; }
+
+ ///
+ /// Ограничение момента вправо, кН*м
+ ///
+ [Range(0.0, 35.0, ErrorMessage = "Ограничение момента вправо, кН*м., должно быть в пределах от 0 до 35")]
+ public double TorqueMaxRight { get; set; }
+
+ ///
+ /// Ограничение момента влево, кН*м
+ ///
+ [Range(0.0, 35.0, ErrorMessage = "Ограничение момента влево, кН*м., должно быть в пределах от 0 до 35")]
+ public double TorqueMaxLeft { get; set; }
+
+ ///
+ /// Режим Авто/Руч
+ ///
+ [Range(0, 1, ErrorMessage = "Режим Авто/Руч, должен быть либо 0, либо 1")]
+ public int Mode { get; set; }
+
+ ///
+ /// Примечание
+ ///
+ [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
+ public string Note { get; set; } = string.Empty;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs
new file mode 100644
index 00000000..f00b339c
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanShockTestDto.cs
@@ -0,0 +1,51 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план shocktest
+///
+public class ProcessMapPlanShockTestDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// StickSlip
+ ///
+ [Range(0.0, 1000.0, ErrorMessage = "StickSlip, должно быть в пределах от 0 до 1000")]
+ public double StickSlip { get; set; }
+
+ ///
+ /// Whirl
+ ///
+ [Range(0.0, 1000.0, ErrorMessage = "Whirl, должно быть в пределах от 0 до 1000")]
+ public double Whirl { get; set; }
+
+ ///
+ /// Осевые вибрации
+ ///
+ [Range(0.0, 1000.0, ErrorMessage = "Осевые вибрации, должно быть в пределах от 0 до 1000")]
+ public double AxialVibrations { get; set; }
+
+ ///
+ /// Комбинированные вибрации
+ ///
+ [Range(0.0, 1000.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 0 до 1000")]
+ public double CombinedVibrations { get; set; }
+
+ ///
+ /// Нагрузка минимальная, т
+ ///
+ [Range(0.0, 30.0, ErrorMessage = "Комбинированные вибрации, должно быть в пределах от 1 до 30")]
+ public double WeightOnBitMin { get; set; }
+
+ ///
+ /// Минимальные обороты на ВСП, об/мин.
+ ///
+ [Range(5, 200, ErrorMessage = "Минимальные обороты на ВСП, об/мин., должно быть в пределах от 5 до 200")]
+ public double RpmMin { get; set; }
+
+ ///
+ /// Примечание
+ ///
+ [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
+ public string Note { get; set; } = string.Empty;
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs
new file mode 100644
index 00000000..f9aade31
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanStaticMeasurementOutputDto.cs
@@ -0,0 +1,15 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план выход статического замера
+///
+public class ProcessMapPlanStaticMeasurementOutputDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// Время ожидания выхода сигнала с ТМС, сек.
+ ///
+ [Range(0.0, 1800.0, ErrorMessage = "Время ожидания выхода сигнала с ТМС, сек., должно быть в пределах от 0 до 1800")]
+ public double SignalWaitingTime { get; set; }
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs
new file mode 100644
index 00000000..693c66d9
--- /dev/null
+++ b/AsbCloudApp/Data/ProcessMaps/Functions/ProcessMapPlanUpdatingNoloadParametersDto.cs
@@ -0,0 +1,20 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace AsbCloudApp.Data.ProcessMaps.Functions;
+
+///
+/// РТК план обновление холостого хода
+///
+public class ProcessMapPlanUpdatingNoloadParametersDto : ProcessMapPlanBaseDto
+{
+ ///
+ /// СПУСК ОК Да/Нет
+ ///
+ public bool IdDeclineSocketColumn { get; set; }
+
+ ///
+ /// Примечание
+ ///
+ [StringLength(1024, ErrorMessage = "Примечание, должно быть не более 1024 символов")]
+ public string Note { get; set; } = string.Empty;
+}
\ No newline at end of file