- •1. Основные понятия системы Concept
- •1.1. Структура проекта Concept
- •1.2. Цикл работы контроллера
- •1.3. Библиотека системы Concept
- •1.4. Переменные в системе Concept
- •1.5. Типы данных
- •2. Основные этапы программирования контроллера
- •2.1. Конфигурирование контроллера
- •2.2. Взаимодействие переменных с платами ввода/вывода
- •2.3. Описание переменных
- •2.4. Проверка/компиляция/загрузка в контроллер
- •2.5. Отладка проекта Окно эмулятора
- •Окна анимации
- •Окна трассировки переменных
- •3. Языки программирования
- •3.1. Язык fbd
- •Элементарные функции и функциональные блоки - efb
- •Производные функциональные блоки - dfb
- •3.2. Редактор fbd
- •3.3. Язык ld
- •3.4. Редактор ld
- •4. Лабораторный практикум
- •4.1. К онфигурирование плк с распределенным вводом/выводом
- •4.2. Процедура создания проекта в системе Concept
- •4.3. Программирование на языке ld
- •4.4. Программирование на языке fbd
- •4.5. Программирование задач логического управления
- •Приложение 1. Варианты самостоятельной работы (язык ld).
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.
Временная диаграмма работы схемы
