Краткие теоретические сведения




Лабораторная работа № 12

Тема: Программирование Zelio Logic на языке релейно-контактной логики Ladder.

Цель: О бзор языка Ladder, использующегося контроллером Zelio Logic, понять, как оперировать с ним и принцип его обработки по элементам, выучить основные операторы (инструкции), разобраться, как использовать программный редактор Zelio Soft, чтобы создавать приложения на языке Ladder.

 

Краткие теоретические сведения

Язык Ladder является графический языком. Он может использоваться для описания релейных диаграмм, а также различных процессов. Создание схем на языке Ladder производится с использованием базовых графических символов: контактов, катушек, блоков. Ladder является самым распространённым языком программирования для программируемых логических контроллеров. На рис.1 представлен пример программы на языке релейно-контактной логики.

Рис.1. Вид схемы на языке Ladder

 

Условно рабочую область программы Zelio Soft можно разделить на 2 части: область построения диаграммы и область комментариев.

Графические элементы, с использованием которых выполняется построение схемы, содержат в себе входные/выходные контакты (кнопки, дискретные датчики, катушки, ЖКИ), функции автоматизации (таймеры, счетчики, компараторы), логические операторы, а также внутренние переменные, представляющие собой реле. Каждая функция автоматизации (блок) характеризуется входными данными (действие), выходными данными (состояния) и дополнительными параметрами, которые определяют логику работы определенного блока. Для каждой строки диаграммы можно добавить комментарий.

Ladder-сеть располагается в зоне между первым контактом (Contact1) и сердечником (Coil). В этой области располагаются контакты, с помощью которых организуется активация катушки (Coil) (функция автоматизации или выходные сигналы модуля). Каждое действие сопровождается изменением состояния определенного блока. Заголовки этих колонок выделены желтым цветом. В таблице 1 представлены обозначения блоков, используемых при построении диаграмм.

Таблица 1. Описание блоков языка Ladder

Название Символ Ladder Обозначение на схеме Описание
Нормально открытый контакт (Normally Open) Контакт замыкается, когда контролирующая его катушка переходит в активное состояние.
Нормально закрытый контакт (Normally Closed) Контакт размыкается, когда контролирующая его катушка переходит в активное состояние.
Горизонтальное соединение Используется для соединения блоков в различных ячейках последовательно.
Вертикальное соединение Используется для создания параллельных соединений блоков.
Обычный сердечник (Active On (Contactor) State) На катушке появляется напряжение, если контакты, к которому она подключена, замкнут.
Импульсный сердечник (Active On (Impulse Relay) State) На катушке появляется напряжение, если контакт, к которому она подключена, изменяет свое состояние (аналог T-триггера).
Установить или зафиксировать катушку (Latch Activation (SET)) На катушке появляется напряжение, если контакты, к которому она подключена, замыкается. На катушке остается, напряжение, даже если контакт разомкнется
Сбросить или разомкнуть катушку (Latch Deactivation (RESET)) С катушки снимается напряжение, если контакты, к которому она подключена, замыкается. Катушка остается разомкнутой, даже если контакт размыкается.

 

На языке программирования LADDER (лестничная логика) можно записывать программы длиной до 120 строк. В каждой строке можно добавить пять контактов и одну катушку. Каждая программа может использовать до 16 таймеров, 16 счётчиков, один быстрый счётчик (1 кГц), 8 компараторов счётчиков, 8 часов и 18 дополнительных слов памяти. Существует и возможность программировать Zelio Logic 2 на языке программирования LADDER прямо на модуле без ПК и использовать кнопки на дисплее как дополнительные вводы.

Каждый графический элемент (блок) занимает одну ячейку на диаграмме. Ladder-сеть должна иметь по крайней мере одну катушку в последней колонке (Coil). Если в диаграмме используется действие S (SET action), как правило, должно использоваться действие R (RESET Action). Исключение составляют случаи, когда необходимо зафиксировать случаи возникновения аварийных ситуаций до тех пор, пока пользователь не выполнит какие-либо действия по устранению причин аварии. Функция сброса (RESET) имеет более высокий приоритет, чем функция установки (SET), если на оба входа поступает сигнал одновременно.

Построенная Ladder-сеть выполняет коммутацию напряжения с левой части диаграммы (высокий уровень), к правой части (низкий уровень). Замкнутые или разомкнутые контакты образуют логическую цепочку, по которой сигнал передается от входных контактов к выходным. С помощью функций автоматизации выполняется управление состоянием контактов.

После того, как выбран модуль, для которого будет создаваться программа, откроется главное окно программы, и в строке состояния (рис.2) будет отображаться тип выбранного модуля.

 

Рис.2. Строка состояния программы

 

Также на этой панели указано количество использованных в программе строк. На панели расположена кнопка «Program Configuration», нажав на которую откроется диалоговое окно настроек проекта, представленное на рис.3.

Рис.3. Окно настроек проекта

 

Это окно содержит 3 закладки. На первой закладке (Properties) указываются название проекта, имя автора, номер версии и комментарии. На второй закладке (Configuration) устанавливается периодичность выполнения программы, состояние сторожевого таймера, который используется дл защиты процессора от зависания (по умолчанию неактивный – Inactive), а также тип аппаратной фильтрации входных сигналов. На третьей закладке устанавливается формат представления даты.

Область построения диаграммы разделена на строки и столбцы, в которых располагаются функциональные блоки. Пунктиром обозначены линии, на которых могут быть расположены соединения между блоками.

Для построения схемы используются функциональные блоки:

· 8 или 10 таймеров различного типа с запуском по импульсу или по фронту (временные интервалы от 0,001 с до 100 ч);

· 8 счетчиков (от 0000 до 9999);

· 8 аналоговых компараторов с 7 видами сравнения;

· 4 часовых блока:

– установка текущего времени из главного меню;

– быстрая смена времени года;

– время сохраняется до 72 часов при отключении электроэнергии;

– возможность комбинирования каналов в течение суток в зависимости от дня недели;

· 28 вспомогательных реле;

· разнообразные виды управляющих катушек: стандартные, с дистанционным переключателем, с памятью на включение и выключение;

· защита паролем от изменения установок задержки;

· возможность отображения значения вместо текущего времени.

На панели инструментов блоки сгруппированы по функциональному назначению. Для того, чтобы отобразить список доступных блоков, следует навести курсор мыши на изображение группы блоков (рис.4).

 

 

Рис.4. Функциональные блоки для построения схемы

 

На рисунке обозначены:

1 – аналоговые и дискретные входы модуля;

2 – кнопки передней панели модуля;

3 – вспомогательные реле;

4 – выходные контакты модуля;

5 – таймеры;

6 – счетчики;

7 – компараторы счетчиков;

8 – аналоговые компараторы;

9 – функции роботы со временем;

10 – функции работы с ЖК дисплеем;

11 – управление подсветкой ЖКИ;

12 – переход на зимнее/летнее время.

При наведении мыши на изображение иконки, появится список доступных блоков (рис.5), при этом иконка подсветиться желтым цветом.

Рис.5. Список блоков группы Discrete Inputs

 

Колонка Comment позволяет ввести комментарии для каждого из элементов.

Для размещения блока на диаграмме необходимо его выделить и перетащить в нужную ячейку, удерживая при этом левую кнопку мыши нажатой. Если при размещении блока в ячейку появится символ , значит, в указанной ячейке блок размесить нельзя. Например, нельзя размещать переключатели в столбце Coil, и катушки в столбцах Contact1-Contact5.

Для создания соединений достаточно нажать один раз левую кнопку мыши на пунктирной линии. Для удаления соединения необходимо повторно нажать на нем левую кнопку мыши.

Пример 1. Разработать программу, которая при появлении высокого уровня на входе I1 модуля, замыкает контакты реле Q1, а при появлении высокого уровня на входе I2 модуля, размыкаются контакты реле Q2. Если на входах I1 и I3 будут сигналы высокого уровня, замыкаются контакты реле Q3.

Решение. Для решения поставленной задачи обходимо собрать схему, показанную на рис.6.

Рис.6. Реализация алгоритма

 

В столбце Contact 1 необходимо разместить блоки дискретных входов I1, I2, I3, которые расположены на палитре Discrete Inputs (рис.5). Из контекстного меню блока I2, которое появится при нажатии правой кнопки мыши, выбрать пункт Normally Closed (нормально закрытые контакты). Изменить тип контакта можно выделив его и нажав на клавишу «Пробел». При появлении сигнала лог.1 на входе I2 модуля, этот контакт разомкнется. Так организуется инверсия. В столбце Coil следует расположить блоки дискретных выходов Q1, Q2 и Q3, которые находятся на палитре Discrete Outputs. Необходимо выбрать катушку с обычным сердечником (Active On (Contactor) State). Это блок с изображением символа «[» (рис.7).

Рис.7. Палитра Discrete Outputs

Использованные в схеме блоки будут подсвечены на палитре серым цветом. Если блок уже расположен на схеме, его нельзя повторно использовать. Также в этой палитре расположены другие типы катушек, описанные в табл.1.

Для того, чтобы отследить состояние выходного реле Q1, из палитры Discrete Outputs следует взять блок контакта Q1, который замыкается, если на катушке Q1 появится высокий уровень сигнала, и расположить его в третьей строке диаграммы, последовательно с контактом дискретного входа I3, который замкнется при появлении на одноименном входе сигнала лог.1. Затем выполняется создание соединений путем однократного нажатия левой кнопки мыши на пунктирных линиях. На диаграмме в левом верхнем углу отображается название блока, по которому можно определить его связь с катушкой. Так, контакт Q1 (третья строка столбца Contact2) связан с катушкой [Q1 (первая строка столбца Coil) и повторяет её состояние. При появлении сигнала высокого уровня на катушке [Q1, контакт Q1 замкнется, а при появлении сигнала низкого уровня на катушке [Q1, контакт Q1 разомкнется. В схеме можно использовать любое количество контактов, связанных с катушками. При этом, при активации катушки все контакты, связанные с ней, изменят свое состояние (замкнуться или разомкнуться в зависимости от типа контакта).

Для проверки работы алгоритма необходимо перейти в режим Симуляции (Simulation), нажав на кнопку с изображением буквы «S» в правом верхнем углу программы, а затем нажать на кнопку «Run» чтобы запустить процесс моделирования (рис.8). Для возврата в режим редактирования схемы необходимо нажать на кнопку «Stop», а затем нажать на кнопку с изображением карандаша, линейки и треугольника.

 

 

Рис.8. Кнопки изменения режима работы программы

 

В режиме симуляции в нижней части окна программы появятся кнопки Show/Hide Inputs, Show/Hide Zx Keys, Show/Hide Outputs и Show/Hide the Simulation Time Controller. Нажатие на любую из этих кнопок приведет к открытию диалогового окна, где будут расположены кнопки и индикаторы, с помощь которых можно моделировать входные сигналы и наблюдать за выходными (рис.9).

 

 

 

Рис.9. Окно программы в режиме моделирования

 

Нажатие на кнопки в окне Discrete Inputs имитирует изменение уровней сигналов на дискретных входах модуля. На рисунке показано, что нажатые кнопки I1 и I2 в диалоговом окне Discrete Inputs вызвали замыкание одноименных контактов в схеме. В диалоговом окне Discrete Outputs высокий уровень сигнала на каком-либо из выходов показан светящейся лампочкой (Q2 на рис.9). Высокий уровень сигнала присутствует только на катушке [Q2, поэтому в диалоговом окне Discrete Outputs светиться только лампочка Q2, Кроме того, на схеме проводники, по которым передается сигнал высокого уровня, подсвечиваются красным цветом, а проводники, с низким уровнем сигнала – синим. Также можно моделировать процесс нажатия пользователем на дискретные кнопки, которые расположены на лицевой панели блока. В рассмотренном примере кнопки не используются. Изменить состояние контакта можно и без использования описанных диалоговых окно. Для этого достаточно в режиме симуляции нажать на изображении контакта, и он изменит свое состояние.

С помощью диалогового окна, показанного на рис.10, можно ускорить процесс моделирования либо установить промежуток времени, в течении которого будет выполняться процесс моделирования. Это удобно, если в программе содержаться таймеры с достаточно большими задержками.

 

 

Рис.10. Окно изменения скорости моделирования

 

Пример 2. Разработать программу, которая реализует логические функции «И» (входы I1,I2, выход Q1), «ИЛИ» (входы I3, I4, выход Q2), «ИСКЛ.ИЛИ» (входы I5, I6, выход Q3), «И-НЕ» (входы I1, I2, выход Q4), «ИЛИ-НЕ» (входы I3, I4, выход Q5), «НЕ» (вход I6, выход Q6).

Решение. Для решения поставленной задачи необходимо собрать схему, показанную на рис.11. В колонке Contact 1 следует расположить блоки дискретных входов. Для реализации операции логической операции «И» необходимо соединить блоки дискретных входом последовательно. Только при наличии сигналов высокого уровня на входах I1 и I2 соответствующие контакты будут замкнуты, и на дискретном выходе Q1 появится сигнал высокого уровня, который вызовет замыкание контактов реле модуля. Для реализации логической операции «ИЛИ» дискретные входы I3 и I4 следует соединить параллельно. При появлении лог.1 на любом из ходов, или на обоих входах одновременно, на дискретном выходе Q2 появится высокий уровень сигнала.

Рис.11. Схема реализации логических функций

Для того, чтобы реализовать логические функции «И-НЕ», «ИЛИ-НЕ», из палитры Discrete Output следует взять блок Contact для выходов Q1 и Q2, разместить их в свободных ячейках, как показано на схеме. Эти контакты следует сделать нормально закрытыми. Если на катушках Q1 и Q2 не будет напряжения, контакты будут замкнуты. Если на этих катушках появится сигнал высокого уровня, контакты разомкнутся (т.е. реализуется инверсия). При изменении типа контакта на нормально замкнутый, в его обозначении будут строчные буквы (q1, q2).

Реализация логической функции «ИСКЛ. ИЛИ» реализуется путем параллельного соединения блоков дискретных входов I5 и I6 (строки 004 и 005), и последовательного включения нормально замкнутого контакта m1 (строка 004), который управляется вспомогательной катушкой M1. Вспомогательную катушку и соответствующий контакт можно найти на палитре Auxiliary Relays. В свою очередь, катушка М1 управляется состоянием дискретных входов, блоки которых соединяются последовательно (строка 006). При появлении сигналов высокого уровня только на одном из дискретных входов (I5 или I6), на дискретном выходе появится сигнал высокого уровня. Если же на обоих дискретных входах I5 и I6 будет лог.1., это вызовет появление высокого уровня сигнала на катушке M1, что вызовет размыкание контакта m1 и установкой низкого уровня на выходе Q3. Таким образом реализуется функция «ИСКЛ. ИЛИ». На рис.12 показана схема, реализующая те же функции, но представленная в нотации языка релейно-контактной логики LADDER.

 

 

Рис.12. Схема реализации логических функций в нотации языка LADDER

 

Для того, чтобы изменить формат представления схемы, в меню Display следует установить флажок напротив отметки Ladder symbol или Electrical Symbol.

Вспомогательные реле (Auxiliary Relays M1-MV) работают аналогично дискретным выходам Q1-Q8. Отличие состоит в том, что вспомогательные реле не имеют физических выходов в модуле. Фактически, их можно ассоциировать с переменными в традиционных языках программирования. Они могут быть использованы для сохранения состояния и использоваться для управления контактами, управляемыми этими реле.

На передней панели интеллектуальных модулей Zelio Logic расположены 4 кнопки. При создании программ можно использовать эти кнопки для управления ходом выполнения программы. На палитре Zx Keys расположены блоки дискретных кнопок Z1-Z4, которые можно добавить в схему. На схеме кнопка представляет собой контакт – нормально открытый или нормально закрытый. При нажатии пользователем на кнопку нормально открытый контакт замыкается, а нормально закрытый контакт размыкается. На рис.13 представлена сема, в которой используются кнопки Z1 и Z2. При нажатии на кнопку Z1, выходное реле Q1 модуля замыкается. При нажатии на кнопку Z2 выходное реле Q2 модуля размыкается.

 

Рис.13. Использование дискретных кнопок в схеме

 

Контакты реле Q1 будут замкнуты до тех пор, пока удерживается нажатой кнопка Z1. При отпускании этой кнопки контакты реле разомкнутся. Контакты реле Q2 будут разомкнуты до тех пор, пока удерживается нажатой кнопка Z2. Состояние выхода Q3 будет изменяться каждый раз при нажатии на кнопку Z3, т.е. при изменении её состояния.

Вспомогательные реле обозначаются буквой М и на диаграмме обозначаются символом катушки. Имеется четыре типа вспомогательных реле:

1. [M – реле включено, если на него подается сигнал высокого уровня. В противном случае реле отключено. Под включенным состоянием реле подразумевается, что контакт, управляемые катушкой, будут замкнут, если он нормально разомкнут, и разомкнут, если контакт нормально замкнут. Если на катушку не поступает сигнал, контакт находится в нормальном состоянии.

2. – реле включается и отключается импульсным сигналом (по аналогии с Т-триггером).

3. SM – реле включается, если на катушку поступает сигнал высокого уровня и остается во включенном состоянии даже если сигнал с катушки снимается;

4. RM – реле выключается, если на катушку поступает сигнал высокого уровня и остается в выключенном состоянии;

Каждая катушка может одновременно управлять несколькими контактами, как нормально замкнутыми, так и нормально разомкнутыми. Для того, чтобы использовать вспомогательные реле указанных типов, из палитры Auxiliary Relays, которая представлена на рис.14, следует выбрать необходимый блок и расположить его на диаграмме.

 

 

Рис.14. Блоки вспомогательных реле

 

Пример 3. Разработать программу, работающую по следующему алгоритму. При нажатии на кнопки Z1 и Z2, на выходе Q1 появляется сигнал высокого уровня. Этот сигнал управляет вспомогательным импульсным реле М1. Контакт реле m1 (нормально замкнутый) управляет состоянием выхода Q2. При нажатии на кнопку Z3 замыкается реле М2, а при нажатии на кнопку Z4, реле М2 размыкается. Контакт реле М2 передает сигнал с дискретного входа I1 на дискретный выход Q3.

Решение. На рис.15 представлена схема, реализующая описанный алгоритм.

Рис.15. Пример использования вспомогательных реле

 

Перейдя в режим симуляции можно проверить работу схемы. Для фиксации положения кнопок Z1 и Z2 в контекстном меню этих блоков следует выбрать команду Force and Maintain. В появившемся диалоговом окне (рис.16) установить флажок напротив метки ON/Actif.

 

 

Рис.16. Изменение состояния кнопки

 

На рис. 17 показано окно программы в режиме моделирования (симуляции).

Рис.17. Вид схемы в режиме моделирования

 

Как видно из схемы, контакт m1 разомкнут, даже если на реле М1 сигнал не подается (реле М1 изменяет состояние только при изменении управляющего сигнала – контакт Q1). Контакт М2 замкнут, т.к. реле М2 сохраняет свое состояние даже при отсутствии сигнала на входе (SET Action). Для размыкания контакта М2 следует нажать на кнопку Z4.

 

Использование счетчиков.

Счетчики используются для подсчета импульсов, причем счет может происходить как на увеличение значения счетчика, так и на уменьшение. Значение счетчика может быть установлено в начальное (preset) или нулевое (zero) значение. Это определяется настройками блока счетчика, которые расположены на палитре Counters (рис.6). На рис.18 представлена палитра с блоками счетчиков.

 

Рис.18. Палитра блоков счетчиков

 

Блоки С1-СG представляют собой контакты, управляемые счетчиком. Контакт замыкается (или размыкается) при достижении счетчиком величины preset. Если значение preset равно 0, то на выходе счетчика устанавливается высокий уровень, если значение счетчика больше 0. Этот сигнал изменяет состояние связанного с ним контакта. Контактов, управляемых счетчиком, может быть несколько, причем разных типов – нормально разомкнутых или нормально замкнутых.

На схеме счетчик представлен в виде катушки и обозначается СС1-ССG. Для того, чтобы расположить счетчик на диаграмме, необходимо навести курсор мыши на изображение буквы «С», и удерживая нажатой левую кнопку мыши, перетащить блок в нужную ячейку колонки Coil. Эта катушка представляет собой счетный вход счетчика. При изменении сигнала, подаваемого на катушку, будет изменяться значение счетчика на 1 в сторону увеличения. Для того, чтобы уменьшить значение счетчика на 1, на диаграмме необходимо расположить блок, управляемый направлением счета (Counting Direction, DC1-DCG). Подав на катушку направления счета высокий, а затем импульс на счетный вход, значение счетчика уменьшится на 1. Если блок направления счета не используется, то по умолчанию установлено направление счета на увеличение значения счетчика. На схеме вход направления счета обозначается CD1-CDG. Для того, чтобы сбросить счетчик, на диаграмме необходимо расположить блок Initialization, который обозначен на палитре (рис.18) буквой «R» (RC1-RCG). При подаче высокого уровня на катушку сброса, значение счетчика примет величину preset, либо установится в 0. Это зависит от настроек, выполненных с помощью диалогового окна настроек счетчика (рис.19). Для вызова этого окна необходимо дважды нажать левую кнопку мыши на изображении блока счетчика.

 

Рис.19. Окно настроек счетчика

 

В окне настроек счетчика устанавливается значение импульсов (поле Pulses), после которых на выходе счетчика появится высокий уровень сигнала. Также указывается условие срабатывания – на выходе счетчика установится сигнал высокого при достижении значения preset либо при достижении 0. Значение preset устанавливается в поле pulses и может принимать значения от 0 до 32767. Второе условие срабатывает при обратном счете. Так, для показанных на рис.19 настроек, после подачи сигнала инициализации на счетчик, значение счетчика станет равным 5. В режиме обратного счета, при достижении счетчиком значения 0, на катушке появится сигнал высокого уровня, и положения контактов, связанных со счетчиком, изменятся.

Функция Latching (защелка) используется для сохранения значения счетчика в случае исчезновения питания модуля. После восстановления питания, счетчик инициализируется предыдущим значением.

На рис.20 представлен пример использования счетчика в диаграмме. При подаче импульсов на вход I1 модуля, значение счетчика увеличивается, поскольку импульсы поступают на катушку СС1 (счетный вход). Если на входе I2 присутствует высокий уровень сигнала, то на катушку направления счета DC1 поступает лог.1 (счетчик переходит в реверсный режим счета). В таком режиме, при подаче импульсов на вход I1, значение счетчика будет уменьшаться. При нажатии на кнопку Z1 на вход инициализации счетчика RC1 поступит сигнал высокого уровня и счетчик примет значение 5. При достижении счетчиком значения 0 (в режиме обратного счета), контакт С1, связанный с выходом счетчика, замкнется, и на выходе Q1 появится лог.1. Как видно из рисунка, каждый из входов счетчика представлен в виде катушки. Подавая или снимая напряжение с этих катушек, выполняется управление режимом работы счетчика по описанному выше алгоритму.

 

 

Рис.20. Пример использования счетчика

 

Диаграммы, представленные на рис.21 и рис.22 поясняют работу счетчика в прямом и реверсном режимах.

 

 

Рис.21. Работа счетчика в прямом режиме

 

На рисунках обозначено Current counter value – текущее значение счетчика, Preset value – значение предустановки, Initialization R – сигнал на входе Initialization (катушка CR1), Counting Direction D – сигнал на входе Counting Direction (катушка CD1), Output – сигнал на выходе счетчика, который управления состоянием связанных с ним контактов.

 

Рис.22. Работа счетчика в реверсном режиме

 

При достижении счетчиком минимального (Low saturation) или максимального значений (High saturation), он насыщается и дальнейших изменений значения счетчика не происходит.

 

Компаратор счетчиков

Компараторы счетчиков используются для выполнения операции сравнения значений двух счетчиков. Блоки компараторов счетчиков расположены в палитре Counter Comparators. На рис.23 представлена палитра с блоками компараторов счетчиков.

Рис.23. Блоки компараторов счетчиков

 

Блок компаратора счетчиков на схеме обозначается как контакт, который изменяет свое состояние, если выполняется условие срабатывания компаратора. Условие срабатывания компаратора настраивается в окне свойств этого блока. Блоки компараторов счетчиков могут быть размещены в колонках Contact 1 – Contact 5. Сравнение может выполняться как между значениями двух счетчиков, так и между значением счетчика и константой.

На рис.24 представлено диалоговое окно, в котором выполняется настройка компаратора счетчиков.

 

 

Рис.24. Окно настроек компаратора счетчиков

 

В режиме нормально открытого контакта компаратор обозначается заглавной буквой «V», в режиме нормально закрытого контакта компаратор обозначается строчной буквой «v». Для изменения типа нормального состояния контакта из контекстного меню блока необходимо выбрать команду Normally Open или Normally Closed.

Выражение, по которому выполняется операция сравнения, имеет вид:

Cx + x <оператор сравнения> Cy + y.

Оператор сравнения выбирается в диалоговом окне настроек блока (рис.24) путем нажатия левой кнопки мыши на кнопке с изображением символа операции сравнения. Имеется возможность задать величины смещений («X offset value» и «Y offset value»), которые используются при выполнении операции сравнения.

Из списков Cx и Cy выбираются имена счетчиков, значения которых необходимо сравнивать. Если из списка выбрать Constant, то будет выполняться операция сравнения значения счетчика с константой. Значения смещений «X offset value» и «Y offset value» могут принимать значения в диапазоне от –32768 до 32767.

 

Быстрый счетчик

Счетчик позволяет измерять импульсные сигналы частотой до 1 кГц (аппаратно). Расположен блок быстрого счетчика на палитре Fast Counter (рис.25).

Рис.25. Блок быстрого счетчика

 

На схеме можно расположить только одну катушку и одну катушку. Если они уже используются в диаграмме, соответствующие ячейки подсвечиваются серым цветом, как показано на рисунке.

Для использования счетчика дискретные входы I1 и I2 модуля остаются не подсоединенными. Импульс на входе I1 увеличивает значение счетчика, импульс на входе I2 уменьшает значение счетчика. Работа блока возможна только при подаче значения лог.1 на вход ENABLE FUNCTION. На диаграмме этот вход обозначается катушкой ТK1, которая может быть установлена в столбце Coil. При подаче лог.1 на катушку RK1 (вход INITIALIZATION), произойдет либо обнуление счетчика, либо установка начального значения, в зависимости от настроек блока в окне свойств. Блок имеет один дискретный выход, лог.1 на котором появляется при достижении счетчика значения preset (в прямом режиме счета) или 0 (в реверсном режиме). Выход счетчика представляет собой контакт (на диаграмме обозначается K1), который изменяет свое состояние (замыкается или размыкается).

На рис.26 представлено диалоговое окно настроек счетчика.

Рис.26. Окно настроек быстрого счетчика

 

Диаграмма, представленная на рис.27, поясняет работу быстрого счетчика. При достижении счетчиком значения Preset, на выходе Output появляется сигнал высокого уровня, и контакт, управляемый счетчиком, изменит свое состояние. На выходе счетчика устанавливается сигнал высокого уровня только если значение больше или равно Preset. При подаче сигнала Initialization счетчик обнуляется. При достижении счетчиком максимального или минимального значения, происходит его переполнение. Если значение счетчика достигает величины +32767, при появлении следующего импульса на счетном входе значение счетчика станет равным –32768.

Рис.27. Диаграмма работы счетчика в прямом режиме счета

 

Работа с ЖК индикатором

Блоки работы с текстом используются для вывода на жидкокристаллический дисплей модуля различную информацию. Максимальное количество строк, отображаемых дисплеем, равно 4. Каждая строка состоит из 18 символов. Выводить на дисплей можно как текстовую, так и числовую информацию: дату, время, значения счетчиков, таймеров, значения опорных сигналов компараторов, величин входных напряжений. Блоки для работы с текстом расположены на палитре Text Blocks, которая показана на рис.28.

 

Рис.28. Блоки для работы с текстом

 

Одновременно можно использовать до 16 блоков на одной диаграмме. Однако следует помнить, что на экран будет выводиться информация только последнего активного блока, потому в программе не обходимо управлять состоянием каждого из текстовых блоков. При размещении на диаграмме текстовый блок представляет собой катушку. Имеется два типа катушек: Enable function (разрешение работы блока, обозначается на диаграмме ТХ1-TXG) и Reset (запрещение работы блока, обозначается RX1-RXG). При подачи сигнала высокого уровня на катушку ТХ, на экране дисплея отобразится информация из активного текстового блока. При подачи высокого уровня сигнала на катушку RX, информация соответствующего текстового блока на экране отображаться не будет. Программно можно изменять состояния сигналов на управляющих катушках, изменяя, таким образом, выводимую информацию в зависимости от текущего состояния модуля.

На палитре LCD Backlighting расположен блок управления подсветкой ЖК дисплея. На диаграмме блок представляет собой катушку, подача сигнала высокого уровня на которую включает подсветку. Обозначается блок TL1. Управление подсветкой позволяет обеспечить удобство считывания информации с экрана, а также, при необходимости, реагировать на внешние изменения. Например включаться при нажатии пользователем на кнопки и отключаться через определенный интервал времени (реализуется программно).

Пример 4. Разработать программу работающую по следующему алгоритму: при подаче импульса на дискретный вход I1 модуля, значение счетчика увеличивается, при подаче импульса на дискретный вход I2 модуля, значение счетчика уменьшается. При достижении счетчиком значения 5, на выходе Q1 модуля устанавливается сигнал высокого уровня. При нажатии на кнопку Z1 происходит обнуление счетчика. Текущее значение счетчика и состояние выхода отображать на ЖК индикаторе. При нажатии на кнопку Z2 выполняется включение либо отключение подсветки ЖК дисплея.

Решение. Для реализации алгоритма необходимо собрать схему, показанную на рис.28. В столбце Contact 1 расположены блоки дискретных входов I1 и I2, а также блоки дискретных кнопок Z1 и Z2. При появлении сигнала высокого уровня на входах I1 и I2, а также нажатии на кнопки, соответствующие контакты замкнуться. В столбце Coil расположены катушки СС1 (счетный вход счетчика), DC1 (направление счета), RC1 (обнуление счетчика), Q1 (дискретный выход), TX2 и TX3 (текстовые блоки), M1 (вспомогательное реле импульсного типа), TL1 (подсветка ЖК экрана). При подачи высокого уровня на катушку, будет выполнена определенная операция. Так, при появлении сигнала высокого уровня на входе I1 замкнется контакт I1 и на катушке СС1 появится сигнал высокого уровня. Поскольку эта катушка является счетным входом счетчика, то значение счетчика увеличится на 1. При нажатии на кнопку Z1 замкнется контакт, управляемый этой кнопкой, и произойдет сброс счетчика, поскольку на катушке RC1 появится сигнал высокого уровня. При достижении счетчиком значения 5 (настраивается в окне свойств блока), произойдет замыкание контакта C1ый управляется выходом счетчика. На дискретном выходе [Q1 модуля установится сигнал высокого уровня.

 

Рис.28. Реализация алгоритма

 

Контакты, управляемые катушкой [Q1, изменят свое положение. Контакт q1 разомкнется, а контакт Q1 замкнется. В нормальном состоянии на ЖК экране отображается содержимое текстового блока TX2. При изменении положения контактов, на ЖК экране отобразится содержимое текстового блока TX3. Таким образом, в каждый момент времени активным будет только один текстовый блок. На рис.29 представлено диалоговое окно настройки текстового блока ТХ2.

 

Рис.29. Окно настройки текстового блока

 

В этом диалоговом окне необходимо указать, какая информация будет выводиться на ЖК экран. В таблице показан список блоков, состояние которых может быть отображено. Поскольку в схеме имеется один счетчик С1, необходимо вывести на экран его текущее значение. Для этого следует дважды нажать на надписи C1 Current. На утилизированном изображении экрана в нижней части диалогового окна появится надпись _C1_C, означающая, что в этой позиции будет выведено значение текущее счетчика С1. Поскольку максимальное значение счетчика равно 32767, то для отображения значения счетчика выделено 5 разрядов. При необходимости можно изменить позицию вывода значения, а также добавить дополнительный текст (например «Counter val: »), поясняющий смысл отображаемой информации. Во второй



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: