5. Блоки и их свойства


Блок представляет собой прямоугольник, имеющий входы и выходы; входы располагаются слева, выходы справа. 
В частных случаях (например, специализированный макрос) либо входы, либо выходы у блока могут отсутствовать.
Количество входов и выходов ограничено.
Каждый вход и выход имеет имя, которое расположено внутри прямоугольника, являющегося границей блока, около левой и правой границ соответственно.

Все блоки, используемые в программе, можно разделить на группы:
  • Функциональные блоки - это программный объект, который представляет специализированную функцию управления, используемую в управляющих системах. Каждый функциональный блок выполняет одну функцию взаимодействия между своими входами и выходами: от элементарных логических И, ИЛИ, НЕ до очень сложных.
  • Макросы - подпрограмма, реализующая определенную задачу. Это функциональная, но в отличие от блока, не элементарная единица проекта. Макросы, как и блоки, выполняют функцию взаимодействия между своими входами и выходами. Но эта функция взаимодействия много сложнее, чем у блоков, и состоит из совокупности отдельных элементарных функций, реализуемых блоками. 
    Макрос в проекте используется как обычный функциональный блок.
  • Блоки входы/выходы - эти блоки служат входами/выходами блоков макросов в проекте.
  • Блоки - входы/выходы устройства - элементы устройства, представляющие собой физические входы/выходы.
  • Блоки - сетевые переменные - блоки используются при создании сетевых проектов.
Любой блок имеет свойства, которые можно вызвать через контекстное меню или нажав клавишу F2.
В свойствах блока можно указать его уникальное название, а так же специфические настройки, характерные для конкретного типа блока.
Рис. 5.1 Окно свойств блока AND

5.1. Блоки логики

Элементарные логические функции представлены следующими блоками:
  • AND (И)
  • OR (ИЛИ)
  • XOR (исключающее ИЛИ)
  • NOT (НЕ)
Выход блоков AND, OR и XOR можно инвертировать, если выбран логический тип данных.
Например, для получения блока И-НЕ нужно установить "флажок" напротив надписи Инверсия в свойствах блока И.

Блоки  ANDOR и XOR  могут выполнять поразрядные операции с целыми со знаком (без знака) и дробными числами.
У блоков  ANDOR и XOR  настраивается количество входов: от двух до двадцати.

Любым логическим входам можно назначить дополнительные свойства:
  • Инверсию;
  • Срабатывание по фронту;
  • Срабатывание по срезу.


5.2. Блоки с импульсным выходом




  • Блок Front определяет нарастание и срез (задний фронт) импульса.
  • Блок Rise определяет нарастание импульса.
  • Блок Fall определяет срез (задний фронт) импульса.

На выходе F блока устанавливается уровень лог. "1" на время полного цикла контроллера.
Блоки этого типа могут работать с любым типом данных на входе D.

Пример применения:
На входе D блока происходит изменение сигнала.
Блок Rise формирует импульс при увеличении значения на входе D относительно значения на этом входе в предыдущем такте.























Аналогично, блок Fall будет формировать импульс при уменьшении значения на входе D.
Более подробно применение этих блоков будет рассмотрено в одном из уроков.


5.3. Блоки Таймер





Выдает короткие импульсы на выходе, с заданным периодом.
Вход еn – разрешение работы таймера, при установленной 1 – работа разрешена, при 0 – работа запрещена
Вход interval задает период работы таймера в миллисекундах.

5.4. Блокии Шифратор / Дешифратор


Рис. 5.4 Блок дешифратора

Шифратор (CD). Преобразует набор логических переменных в целочисленное значение. Количество входов меняется от 2 до 32.
Дешифратор (DC). Раскладывает целочисленную переменную по битам в переменные типа boolКоличество выходов меняется от 2 до 32.

5.7. Блок Условие ( IF )


Блок IF переносит значение со входа true на выход, если вход if установлен в истину (true (1)). Если вход if установлен в ложь (false(0)) – то блок переносит значение со входа false.
Тип данных входов и выхода настраивается.

5.8. Блок Сравнение




Блок устанавливает значение 1 на выходе, если выбранная операция истинна, иначе устанавливает 0.
Тип данных входов настраивается.
Тип операции настраивается:
  1. ==    ( равно )
  2. !=     (не равно)
  3. >      (больше)
  4. >=    (больше или равно)
  5. <      (меньше)
  6. <=    (меньше или равно)

5.8. Блоки Мультиплексор / Демультиплексор





Мультиплексор. Передает на выход out значение одного из входов. Номер входа определяется значением на входе addr.
Демультиплексор. Передает значение с входа in на один из выходов. Номер выхода определяется значением на входе addr.