Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ по лабораторным работам.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.7 Mб
Скачать

3.3. Язык ld

Э то графическое представление булевых функций, содержащее контакты (входные переменные) и обмотки (выходные переменные). Графические символы языка LD похожи на изображения в релейно-контактных схемах (рисунок 1.5).

Рисунок 1.5. Графические символы языка LD

С каждым контактом или обмоткой может быть связана булева переменная. С контактами связываются: входные, выходные, внутренние переменные и константы; с обмотками – внутренние и выходные. Значение переменной, связанной с контактом, определяет замкнутость этого контакта. И наоборот, состояние обмотки определяет значение связанной с ней переменной.

Для изображения входных контактов существует несколько символов:

П

рямой контакт (замыкающий)

Обратный контакт (размыкающий)

Контакт с обнаружением заднего (negativ) фронта

Контакт с обнаружением переднего (positiv) фронта

Прямой контакт считается замкнутым, если переменная с ним связанная имеет значение true. Обратный контакт считается замкнутым, если переменная равна false. Контакт с обнаружением переднего фронта считается замкнутым, если значение переменной на предыдущем цикле работы контроллера равно false, а на текущем равно true. Контакт с обнаружением заднего фронта считается замкнутым, если значение переменной на предыдущем цикле работы контроллера равно true, а на текущем равно false. Логика работы контактов показана на рисунке.

Используется несколько типов обмоток:

П

рямая обмотка

Обратная обмотка

Обмотка с установкой в состояние true (set–обмотка)

Обмотка со сбросом состояния false(reset–обмотка)

Состояние обмотки и значение связанной с ней переменной зависит от состояния контактов, к которым обмотка подключена. Если контакты слева от обмотки создают замкнутую цепь, то прямая обмотка считается замкнутой, а связанная с ней переменная out1 принимает значение true. При размыкании цепи прямой обмотки переменная out1 принимает значение false. Для обратной обмотки разомкнутая цепь означает, что значение переменной out2 равно true. А замыкание цепи приводит к переключению переменной out2 в значение false.

Обмотки с установкой состояния могут только устанавливать значение связанной переменной в true при замыкании цепи. Сброс переменной обмоткой с установкой состояния невозможен. И наоборот, обмотка со сбросом состояния может только сбрасывать значение своей переменной в false.

Порядок расчета диаграмм LD.

В LD решение диаграммы выполняется последовательно слева направо и сверху вниз. В каждом рабочем цикле однократно вы­полняются все цепи диаграммы, что и создает эффект параллель­ности работы цепей. Любая переменная в рамках одной цепи все­гда имеет одно и то же значение. Цепи расположенные ниже, получат новое значение переменной сразу. Цепи расположенные выше — только в следующем цикле. Строгий порядок выполнения схемы очень важен. Случайный или даже истинно параллельный порядок вы­полнения цепей мог бы приводить к эффекту «гонок», встречаю­щемуся в электронных схемах с триггерами. Благодаря жесткому порядку выполнения LD-диаграммы сохраняют устойчивость при наличии обратных связей.

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

Применение функциональных блоков в программе на языке LD

Для расширения функциональных возможностей языка LD допускается применение функциональных блоков в диаграммах LD. При этом контакты и катушки могут подсоединяться только к булевым входам/выходам блока. В случае, если у блока нет булевых входов/выходов, можно использовать EN/ENO входы.

Пример использования функционального блока таймера в программе на языке LD.

Временная диаграмма работы схемы