forked from ddrilling/AsbCloudServer
Added drilling operations to Telemetry analytics calculation
This commit is contained in:
parent
84cb9f6d3b
commit
3c9745474a
@ -66,10 +66,10 @@ namespace AsbCloudDb.Model
|
|||||||
public bool IsBlockPositionDecreasing { get; set; }
|
public bool IsBlockPositionDecreasing { get; set; }
|
||||||
|
|
||||||
[Column("is_rotor_speed_lt_3"), Comment("Обороты ротора ниже 3")]
|
[Column("is_rotor_speed_lt_3"), Comment("Обороты ротора ниже 3")]
|
||||||
public bool IsRotorSpeedLt3 { get; set; }
|
public bool IsRotorSpeedLt5 { get; set; }
|
||||||
|
|
||||||
[Column("is_rotor_speed_gt_3"), Comment("Обороты ротора выше 3")]
|
[Column("is_rotor_speed_gt_3"), Comment("Обороты ротора выше 3")]
|
||||||
public bool IsRotorSpeedGt3 { get; set; }
|
public bool IsRotorSpeedGt5 { get; set; }
|
||||||
|
|
||||||
[Column("is_pressure_lt_20"), Comment("Давление менее 20")]
|
[Column("is_pressure_lt_20"), Comment("Давление менее 20")]
|
||||||
public bool IsPressureLt20 { get; set; }
|
public bool IsPressureLt20 { get; set; }
|
||||||
|
@ -191,8 +191,8 @@ namespace AsbCloudDevOperations
|
|||||||
IsBitPositionLt20 = true,
|
IsBitPositionLt20 = true,
|
||||||
IsBlockPositionIncreasing = false,
|
IsBlockPositionIncreasing = false,
|
||||||
IsBlockPositionDecreasing = false,
|
IsBlockPositionDecreasing = false,
|
||||||
IsRotorSpeedLt3 = true,
|
IsRotorSpeedLt5 = true,
|
||||||
IsRotorSpeedGt3 = false,
|
IsRotorSpeedGt5 = false,
|
||||||
IsPressureLt20 = true,
|
IsPressureLt20 = true,
|
||||||
IsPressureGt20 = false,
|
IsPressureGt20 = false,
|
||||||
IsHookWeightNotChanges = true,
|
IsHookWeightNotChanges = true,
|
||||||
@ -214,8 +214,8 @@ namespace AsbCloudDevOperations
|
|||||||
IsBitPositionLt20 = true,
|
IsBitPositionLt20 = true,
|
||||||
IsBlockPositionIncreasing = true,
|
IsBlockPositionIncreasing = true,
|
||||||
IsBlockPositionDecreasing = false,
|
IsBlockPositionDecreasing = false,
|
||||||
IsRotorSpeedLt3 = true,
|
IsRotorSpeedLt5 = true,
|
||||||
IsRotorSpeedGt3 = false,
|
IsRotorSpeedGt5 = false,
|
||||||
IsPressureLt20 = true,
|
IsPressureLt20 = true,
|
||||||
IsPressureGt20 = false,
|
IsPressureGt20 = false,
|
||||||
IsHookWeightNotChanges = true,
|
IsHookWeightNotChanges = true,
|
||||||
@ -237,8 +237,8 @@ namespace AsbCloudDevOperations
|
|||||||
IsBitPositionLt20 = true,
|
IsBitPositionLt20 = true,
|
||||||
IsBlockPositionIncreasing = false,
|
IsBlockPositionIncreasing = false,
|
||||||
IsBlockPositionDecreasing = true,
|
IsBlockPositionDecreasing = true,
|
||||||
IsRotorSpeedLt3 = true,
|
IsRotorSpeedLt5 = true,
|
||||||
IsRotorSpeedGt3 = false,
|
IsRotorSpeedGt5 = false,
|
||||||
IsPressureLt20 = true,
|
IsPressureLt20 = true,
|
||||||
IsPressureGt20 = false,
|
IsPressureGt20 = false,
|
||||||
IsHookWeightNotChanges = true,
|
IsHookWeightNotChanges = true,
|
||||||
@ -260,8 +260,8 @@ namespace AsbCloudDevOperations
|
|||||||
IsBitPositionLt20 = true,
|
IsBitPositionLt20 = true,
|
||||||
IsBlockPositionIncreasing = false,
|
IsBlockPositionIncreasing = false,
|
||||||
IsBlockPositionDecreasing = false,
|
IsBlockPositionDecreasing = false,
|
||||||
IsRotorSpeedLt3 = true,
|
IsRotorSpeedLt5 = true,
|
||||||
IsRotorSpeedGt3 = false,
|
IsRotorSpeedGt5 = false,
|
||||||
IsPressureLt20 = true,
|
IsPressureLt20 = true,
|
||||||
IsPressureGt20 = false,
|
IsPressureGt20 = false,
|
||||||
IsHookWeightNotChanges = true,
|
IsHookWeightNotChanges = true,
|
||||||
@ -283,8 +283,8 @@ namespace AsbCloudDevOperations
|
|||||||
IsBitPositionLt20 = true,
|
IsBitPositionLt20 = true,
|
||||||
IsBlockPositionIncreasing = true,
|
IsBlockPositionIncreasing = true,
|
||||||
IsBlockPositionDecreasing = false,
|
IsBlockPositionDecreasing = false,
|
||||||
IsRotorSpeedLt3 = true,
|
IsRotorSpeedLt5 = true,
|
||||||
IsRotorSpeedGt3 = false,
|
IsRotorSpeedGt5 = false,
|
||||||
IsPressureLt20 = true,
|
IsPressureLt20 = true,
|
||||||
IsPressureGt20 = false,
|
IsPressureGt20 = false,
|
||||||
IsHookWeightNotChanges = true,
|
IsHookWeightNotChanges = true,
|
||||||
|
@ -520,8 +520,8 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
IsBitPositionLt20 = bitPositionLine.IsAverageYLessThanBound(20),
|
IsBitPositionLt20 = bitPositionLine.IsAverageYLessThanBound(20),
|
||||||
IsBlockPositionDecreasing = blockPositionLine.IsYDecreases(-0.0001),
|
IsBlockPositionDecreasing = blockPositionLine.IsYDecreases(-0.0001),
|
||||||
IsBlockPositionIncreasing = blockPositionLine.IsYIncreases(0.0001),
|
IsBlockPositionIncreasing = blockPositionLine.IsYIncreases(0.0001),
|
||||||
IsRotorSpeedLt3 = rotorSpeedLine.IsAverageYLessThanBound(3),
|
IsRotorSpeedLt5 = rotorSpeedLine.IsAverageYLessThanBound(5),
|
||||||
IsRotorSpeedGt3 = rotorSpeedLine.IsAverageYMoreThanBound(3),
|
IsRotorSpeedGt5 = rotorSpeedLine.IsAverageYMoreThanBound(5),
|
||||||
IsPressureLt20 = pressureLine.IsAverageYLessThanBound(20),
|
IsPressureLt20 = pressureLine.IsAverageYLessThanBound(20),
|
||||||
IsPressureGt20 = pressureLine.IsAverageYMoreThanBound(20),
|
IsPressureGt20 = pressureLine.IsAverageYMoreThanBound(20),
|
||||||
IsHookWeightNotChanges = hookWeightLine.IsYNotChanges(0.0001, -0.0001),
|
IsHookWeightNotChanges = hookWeightLine.IsYNotChanges(0.0001, -0.0001),
|
||||||
|
@ -16,6 +16,26 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 1,
|
Order = 1,
|
||||||
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Роторное бурение")),
|
||||||
|
Detect = (data) =>
|
||||||
|
{
|
||||||
|
return data.IsWellDepthIncreasing && data.IsBitPositionIncreasing &&
|
||||||
|
data.IsBlockPositionIncreasing && data.IsRotorSpeedGt5;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new TelemetryOperationDetector
|
||||||
|
{
|
||||||
|
Order = 2,
|
||||||
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Слайдирование")),
|
||||||
|
Detect = (data) =>
|
||||||
|
{
|
||||||
|
return data.IsWellDepthIncreasing && data.IsBitPositionIncreasing &&
|
||||||
|
data.IsBlockPositionIncreasing && data.IsRotorSpeedLt5;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new TelemetryOperationDetector
|
||||||
|
{
|
||||||
|
Order = 3,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("На поверхности")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("На поверхности")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
@ -24,7 +44,7 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 2,
|
Order = 4,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Удержание в клиньях")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Удержание в клиньях")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
@ -36,143 +56,143 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 3,
|
Order = 5,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с проработкой")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с проработкой")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureGt20;
|
data.IsRotorSpeedGt5 && data.IsPressureGt20;
|
||||||
}
|
|
||||||
},
|
|
||||||
new TelemetryOperationDetector
|
|
||||||
{
|
|
||||||
Order = 4,
|
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с проработкой")),
|
|
||||||
Detect = (data) =>
|
|
||||||
{
|
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
|
||||||
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureGt20;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
new TelemetryOperationDetector
|
|
||||||
{
|
|
||||||
Order = 5,
|
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с промывкой")),
|
|
||||||
Detect = (data) =>
|
|
||||||
{
|
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
|
||||||
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureGt20;
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 6,
|
Order = 6,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с промывкой")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с проработкой")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureGt20;
|
data.IsRotorSpeedGt5 && data.IsPressureGt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 7,
|
Order = 7,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск в скважину")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с промывкой")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureLt20;
|
data.IsRotorSpeedLt5 && data.IsPressureGt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 8,
|
Order = 8,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с вращением")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с промывкой")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureLt20;
|
data.IsRotorSpeedLt5 && data.IsPressureGt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 9,
|
Order = 9,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем из скважины")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск в скважину")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureLt20;
|
data.IsRotorSpeedLt5 && data.IsPressureLt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 10,
|
Order = 10,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с вращением")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Спуск с вращением")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
data.IsBitPositionIncreasing && data.IsBlockPositionDecreasing &&
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureLt20;
|
data.IsRotorSpeedGt5 && data.IsPressureLt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 11,
|
Order = 11,
|
||||||
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем из скважины")),
|
||||||
|
Detect = (data) =>
|
||||||
|
{
|
||||||
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
|
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
||||||
|
data.IsRotorSpeedLt5 && data.IsPressureLt20;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new TelemetryOperationDetector
|
||||||
|
{
|
||||||
|
Order = 12,
|
||||||
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Подъем с вращением")),
|
||||||
|
Detect = (data) =>
|
||||||
|
{
|
||||||
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
|
data.IsBitPositionDecreasing && data.IsBlockPositionIncreasing &&
|
||||||
|
data.IsRotorSpeedGt5 && data.IsPressureLt20;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new TelemetryOperationDetector
|
||||||
|
{
|
||||||
|
Order = 13,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Промывка в покое")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Промывка в покое")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
||||||
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureGt20;
|
data.IsRotorSpeedLt5 && data.IsPressureGt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 12,
|
Order = 14,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Промывка с вращением")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Промывка с вращением")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
||||||
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureGt20;
|
data.IsRotorSpeedGt5 && data.IsPressureGt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 13,
|
Order = 15,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Неподвижное состояние")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Неподвижное состояние")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
||||||
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedLt3 && data.IsPressureLt20 && data.IsHookWeightNotChanges;
|
data.IsRotorSpeedLt5 && data.IsPressureLt20 && data.IsHookWeightNotChanges;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 14,
|
Order = 16,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Вращение без циркуляции")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Вращение без циркуляции")),
|
||||||
Detect = (data) =>
|
Detect = (data) =>
|
||||||
{
|
{
|
||||||
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
return !data.IsWellDepthDecreasing && !data.IsWellDepthIncreasing &&
|
||||||
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
!data.IsBitPositionDecreasing && !data.IsBitPositionIncreasing &&
|
||||||
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
!data.IsBlockPositionDecreasing && !data.IsBlockPositionIncreasing &&
|
||||||
data.IsRotorSpeedGt3 && data.IsPressureLt20;
|
data.IsRotorSpeedGt5 && data.IsPressureLt20;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new TelemetryOperationDetector
|
new TelemetryOperationDetector
|
||||||
{
|
{
|
||||||
Order = 15,
|
Order = 17,
|
||||||
Operation = operations.FirstOrDefault(o => o.Name.Equals("Невозможно определить операцию")),
|
Operation = operations.FirstOrDefault(o => o.Name.Equals("Невозможно определить операцию")),
|
||||||
Detect = (data) => true
|
Detect = (data) => true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user