1. Что делает программа
Пример контролирует согласованность двух датчиков положения. Если Position_A и Position_B различаются, блок XOR включает диагностический выход Sensor_Mismatch.
Схема подходит для учебного контроля пары датчиков, которые в нормальном состоянии должны показывать одинаковое значение.
Position_A XOR Position_B -> Sensor_Mismatch
2. Сигналы примера
| Сигнал | Тип | Назначение |
|---|---|---|
| Position_A | вход | первый датчик положения |
| Position_B | вход | второй датчик положения |
| XOR | блок | сравнивает два булевых сигнала на различие |
| Sensor_Mismatch | выход | диагностический сигнал рассогласования |
3. Основная логика
XOR возвращает TRUE, когда входы разные.
Sensor_Mismatch = Position_A XOR Position_B
Если оба датчика FALSE или оба TRUE, выход диагностики остаётся FALSE. Если один датчик TRUE, а второй FALSE, появляется рассогласование.
4. Таблица работы
| Position_A | Position_B | Sensor_Mismatch |
|---|---|---|
| FALSE | FALSE | FALSE |
| TRUE | FALSE | TRUE |
| FALSE | TRUE | TRUE |
| TRUE | TRUE | FALSE |
5. Как проверять в симуляции
- оставьте оба входа FALSE - ошибки нет;
- включите только Position_A - Sensor_Mismatch станет TRUE;
- включите оба входа - ошибка исчезнет;
- выключите Position_A и оставьте Position_B TRUE - ошибка снова появится.
6. На что обратить внимание
XOR удобен для поиска различия, но он не объясняет причину. В реальной диагностике рядом часто добавляют отдельные сообщения: какой датчик активен, какой не активен, сколько времени длится рассогласование.
Для более строгой схемы можно добавить таймер TON, чтобы кратковременные переходные состояния не сразу давали аварию.
Проверка в редакторе
Откройте готовую FBD-схему, переключайте входы и сравните поведение симуляции с описанием программы. JSON можно скачать отдельно.