Описание каскадной логики принятия решений системой весогабаритного контроля на примере параметра «Полная масса» на основе приведенного примера .
Норма массы = 40 тонн, порог штрафа (10%) = 44 тонны.
Считаем, что датчики исправны и признак достоверности (Sign) = 1.
| Этап обработки | Описание логики | Условие срабатывания | Пример (масса автомобиля) |
|---|---|---|---|
| Валидация данных | Проверяется бит корректности измерения Sign. Если Sign = 0, параметр исключается из анализа. |
Sign == 1 |
Для всех примеров ThrustSign = 1. |
| Расчёт порогов | Для веса: ПорогШтрафа = Норма × 1.1. Для габаритов: ПорогШтрафа = Норма + 10 см. |
— | 40 т × 1.1 = 44 т. |
| Каскад приоритетов | Сценарии проверяются от наивысшего приоритета (4) к низшему (7). Первое срабатывание завершает анализ. | Приоритеты: 4 –комплексное >10% 5 – одиночное >10% 6 –комплексное <10% 7 – одиночное <10% |
|
| 🔴 Красная зона (Штраф) | Срабатывает, если фактическое значение строго больше порога штрафа. | Факт > ПорогШтрафа и Sign == 1 |
45 т: 45 > 44 → срабатывает приоритет 5 (одиночный штраф). |
| 🟢 Зелёная зона (Предупреждение) | Срабатывает, если значение попало в «жёлтый коридор»: превышает норму, но меньше порога штрафа. | Норма < Факт < ПорогШтрафа и Sign == 1 |
42 т: 40 < 42 < 44 → срабатывает приоритет 7 (одиночное предупреждение). |
| Норма | Превышения нет – сообщение на табло не выводится. | Факт ≤ Норма |
38 т: 38 ≤ 40 → тишина. |
Система обрабатывает каждый проезд линейно, проверяя условия от самого высокого приоритета к самому низкому.
Система использует поле priority для арбитража. Чем меньше число, тем выше важность.
| Приоритет | Зона | Тип нарушения | Описание |
|---|---|---|---|
| 4 | 🔴 Красная | Комплекс (Штраф) | Нарушение по двум параметрам (например, Масса + Габарит) с превышением > 10%. |
| 5 | 🔴 Красная | Одиночное (Штраф) | Нарушение только по одному параметру с превышением > 10%. |
| 6 | 🟢 Зеленая | Комплекс (Предупр.) | Нарушение > Нормы, но < 10% по двум параметрам. |
| 7 | 🟢 Зеленая | Одиночное (Предупр.) | Нарушение > Нормы, но < 10% по одному параметру. |
Для разделения нарушителей на "злостных" и "случайных" используются разные формулы расчета порогов.
Используется относительное исчисление (проценты).
Норма: Значение из XML (NormGrossWeight, GroupAxlesNorm).
Порог Штрафа: Норма + 10%.
Формула: Value * 1.1 (Operation: Multiplication).
Используется абсолютное исчисление (сантиметры).
Норма: Значение из XML (NormLength, NormWidth...).
Порог Штрафа: Норма + 10 см.
Формула: Value + 10 (Operation: Addition). Примечание: переменная в системе в см.
Перед любой проверкой цифр система смотрит на технический признак корректности измерения.
Правило: ThrustSign (или LengthSign и т.д.) должно быть равно 1.
Реализация: Используется формула Sign * 0 + 1 для сравнения с единицей. Если признак 0, сценарий не сработает.
Сценарии этой группы срабатывают, если фактическое значение строго больше порога штрафа.
Логическая формула:
ЕСЛИ (Sign == 1) И (Факт > Порог_Штрафа) ТО -> TRUE
Особенность Комплексных сценариев (Приоритет 4):
Используется принцип Атомизации. Вместо одного огромного файла с операторами ИЛИ, созданы отдельные файлы для каждой пары нарушений:
Масса + Длина
Масса + Ось
Ось + Ширина
Сценарии этой группы срабатывают, если нарушение попадает в «Желтый коридор».
Логическая формула:
ЕСЛИ (Sign == 1)
И (Факт > Норма) <-- Нижняя граница (вход в нарушение)
И (Факт < Порог_Штрафа) <-- Верхняя граница (защита от перекрытия)
ТО -> TRUE
Контент (novaContent) жестко привязан к группам сценариев.
Срабатывает при приоритетах 4 и 5.
Цвет номера: Желтый.
Текст: Красный.
Сообщение: ПРЕВЫШЕНИЕ / МАССЫ (или КОМПЛЕКС / ОСЕЙ и т.д.).
Срабатывает при приоритетах 6 и 7.
Цвет номера: Желтый.
Текст: Красный (описание нарушения) + Зеленый штамп.
Сообщение:
Строка 3: ПРЕВЫШЕНИЕ ... (Красным)
Строка 4: БЕЗ ШТРАФА (Зеленым)
Допустим, Норма массы = 40 тонн.
Порог штрафа (10%) = 44 тонны.
| Вес грузовика | Анализ "Красного" фильтра | Анализ "Зеленого" фильтра | Результат |
|---|---|---|---|
| 38 т | 38 > 44? НЕТ |
38 > 40? НЕТ |
Тишина (Норма) |
| 42 т | 42 > 44? НЕТ |
42 > 40 (ДА) И 42 < 44 (ДА) |
✅ Сценарий БЕЗ ШТРАФА |
| 45 т | 45 > 44? ДА |
Система не доходит до проверки (Приоритет 4 перехватил) | ⛔ Сценарий ШТРАФ |