Логические операции со словами
Бит и Выбор
Манипулируйте данными в самом сердце регистров. От побитового двоичного маскирования до сложного мультиплексирования — оптимизируйте обработку слов данных.
Что такое логические операции со словами в TIA Portal?
Логические операции со словами позволяют выполнять булевы вычисления над всеми битами слова (Word, DWord, LWord). Они необходимы для маскирования битов, сравнения двоичных шаблонов или упрощенного управления сгруппированными сигналами.
Этот раздел также включает мощные функции выбора, такие как SEL и MUX, которые позволяют динамически выбирать одно значение из нескольких на основе условия или индекса, а также инструменты кодирования (ENCO) и декодирования (DECO) для управления состояниями.
Поразрядная логика
Булева обработка для Word и DWord
AND / OR / XOR — Бинарные операции
ANDЧто она делает
Выполняет логическую операцию (И, ИЛИ, Исключающее ИЛИ) над каждым соответствующим битом между двумя или более входами. Результат предоставляется в слове того же размера.
Когда использовать
Маскирование определенных битов (AND с маской), комбинирование аварийных сигналов или побитовое обнаружение изменений состояния.
Советы профи
AND идеально подходит для 'выключения' битов, OR — для их 'включения'.
XOR идеален для сравнения двух слов и определения различающихся битов.
Вы можете добавить дополнительные входы в блок, нажав на желтый значок.
INVERT — Инвертирование
INVЧто она делает
Инвертирует состояние каждого бита во входном слове (0 становится 1, 1 становится 0).
Когда использовать
Инвертирование группы сигналов датчиков или подготовка специфических двоичных вычислений.
Советы профи
Эквивалентно оператору NOT в классическом программировании, но применительно ко всему слову.
Очень полезно для связи со сторонним оборудованием с инвертированной логикой.
Будьте осторожны, не путайте с дополнением до двух (NEG).
Выбор и мультиплексирование
Динамическая маршрутизация значений
SEL — Бинарный выбор
SELЧто она делает
Выбирает один из двух входов (IN0 или IN1) в зависимости от состояния бинарного входа G (G=0 -> IN0, G=1 -> IN1).
Когда использовать
Выбор между ручной и автоматической уставкой или переключение между двумя порогами температуры.
Советы профи
Графический эквивалент тернарного оператора (условие ? a : b).
Компактнее, чем блок IF или два нетворка условной передачи.
Работает почти со всеми типами данных (Int, Real, Time...).
MUX / DEMUX — Мультиплексоры
MUXЧто они делают
MUX выбирает один вход из N на основе индекса K. DEMUX направляет вход на один из N выходов на основе индекса K.
Когда использовать
Управление рецептами (выбор по индексу), динамическое отображение на HMI или маршрутизация данных на разные рабочие станции.
Советы профи
Индекс K начинается с 0. Если K=0, выбирается IN0.
Используйте вход ELSE мультиплексора MUX для задания значения по умолчанию, если индекс выходит за пределы.
DEMUX очень эффективен для распределения измерения по различным журналам истории.
Кодирование и декодирование
Преобразование между индексом и позицией бита
DECO — Декодирование
DECOЧто она делает
Активирует бит, номер которого соответствует входному значению. Все остальные биты выходного слова устанавливаются в 0.
Когда использовать
Преобразование номера шага в бинарный сигнал для управления конкретным выходом.
Советы профи
Если на входе 3, бит 3 (4-й по счету) выходного слова будет равен 1.
Позволяет легко переходить от целого числа к битовой маске.
Идеально подходит для управления сигнальными колоннами или индикаторами состояния.
ENCO — Кодирование
ENCOЧто она делает
Возвращает номер младшего значащего бита (LSB), который находится в состоянии 1 во входном слове.
Когда использовать
Определение того, какая неисправность появилась в слове аварий для отображения соответствующего сообщения.
Советы профи
Если входное слово содержит 2#0000_1000, ENCO возвращает 3.
Обратная операция декодированию DECO.
Очень полезно для преобразования сигналов от дискретных датчиков положения в числовое значение.
Обработка слов против индивидуальных битов
Почему стоит работать с целым словом?
| Сценарий | Подход Word Logic | Преимущество |
|---|---|---|
| Сброс 8 выходов в 0 | MOVE 0 -> Word | 1 нетворк вместо 8 контактов |
| Маскирование байта | AND 16#00FF | Хирургическая точность |
| Инверсия 16 сигналов | INVERT | Скорость выполнения |
| Выбор 1 значения из 10 | MUX | Максимальная читаемость |
| Маршрутизация измерения | DEMUX | Гибкая логика |
| Приоритет аварии | ENCO | Мгновенная диагностика |
Часто задаваемые вопросы
В чем разница между MUX и массивом (Array)?
MUX — это жестко закодированная инструкция для нескольких значений (обычно < 10). Для сотен значений используйте массив с динамической индексацией [i] в SCL.
Можно ли выполнять AND над типами REAL?
Нет, поразрядные логические операции (AND, OR, XOR) разрешены только для бинарных типов (Byte, Word, DWord, LWord).
Как работает индекс демультиплексора DEMUX?
Вход K определяет, в какой выход копируется значение IN. Если K=2, IN копируется в OUT2. Все остальные выходы сохраняют свое предыдущее значение или 0 в зависимости от конфигурации.
Меняет ли INVERT знак числа?
Нет, INVERT переворачивает биты. Чтобы изменить знак (дополнение до двух), используйте инструкцию NEG (Математика) или умножьте на -1.