Примеры программ на языке lad

Базовым языком программирования логического контроллера LOGO! является графический проблемно-ориентированный язык LAD (язык релейной логики) или язык циклических лестничных диаграмм (Ladder Diagram). Программирование на LAD-языке называется LD-программированием.

LD-программирование – неформализуемый процесс разработки закона логического управления объектом, основанный на глубоком понимании технического задания, анализе возможных вариантов и выборе оптимального решения в соответствии с заданным критерием, а также знании всех функциональных возможностей LAD-языка.

Управляющая LAD-программа является циклической. Она состоит из строк-ступенек, соединенных слева с вертикальной шиной напряжения Uп. Максимальное число строк не должно превышать 120-130.

Циклическая САУ (ЦСАУ) с встроенным контроллером LOGO! – аппаратно-программный комплекс, в котором информационная подсистема с LOGO!, реализующая LAD-программу в циклическом режиме, управляет исполнительной подсистемой в соответствии с технологической циклограммой, которая может многократно отрабатываться системой.

Программирование ПЛК. Пример ladder logic

Предметной областью LD-программирования являются разнообразные электротехнические объекты (системы, электродвигатели различных классов, электромагнитные устройства, усилители мощности, релейные датчики и сигнальные элементы и др.).

Управляющая LAD-программа формируется в виде последовательности строк, сконфигурированных в соответствии со строгим LD-синтаксисом из программных графических элементов, имеющих виртуальные шины питания. Эти программные LD-элементы в среде ПО LSC функционально объединены в следующие группы:

· коммутирующие и коммутируемые (постоянные) элементы, а также соединители (группа Co-элементов);

· логические элементы и сборки (группа LF-функций или логических функций);

· специальные функциональные элементы (группа SF-функций или специальных проблемно-ориентированных функций).

Все перечисленные группы представлены в формате меню и находятся в Главном (Рабочем) окне LOGO! Soft Comfort V6 (или V7). При этом группы LF и SF можно рассматривать как подпрограммы общей управляющей LAD-программы (рис. 6).

Программные графические LD-элементы

Логическое управление состоянием Co- элементов представлено в виде табл.1 (приложение 2).

Группа постоянных элементов (Co-элементов) состоит из программных «контактов» и «катушек», которые могут ассоциироваться с операторами

«если-тогда», используемыми в алгоритмических языках классического программирования (табл.1). Замыкающий контакт (или нормально разомкнутый в исходном состоянии) вместе с катушкой могут быть отождествлены со следующим условием-действием: «если контакт будет замкнут (то есть из исходного разомкнутого состояния перейдет в замкнутое), то произойдет некоторое действие» (например, включена электрическая нагрузка).

Конфигурирование программы основано на системе соглашений, которые можно трактовать как своеобразный синтаксис LAD-языка:

Программирование ПЛК. Как понять язык LADDER за 5 минут!

· каждая строка состоит из одного или нескольких независимых и/или зависимых программных контактов, расположенных правее шины Uп и катушки, или специального функционального блока (SF — блока), которые располагаются в конце строки;

· контакты в строке могут быть соединены между собой как последовательно, так и параллельно (то есть по схемам «И» и «ИЛИ»); катушки соединяются только параллельно;

· блоки памяти (М-элементы или флаги-маркеры) также располагаются в конце строки;

· число независимых контактов в LAD-программе должно быть не более общего числа датчиков и сигнальных элементов ЦСАУ;

· число катушек не должно превышать числа пар аппаратных контактов выходных электромагнитных реле контроллера (для LOGO! 24RC — четыре выхода по 10А каждый);

· все типы программных контактов и катушек могут иметь по несколько «входов» (например, к одному контакту могут быть подключены параллельно несколько датчиков по схеме «ИЛИ»);

· максимальное число SF-блоков в LAD-программе равно числу всех, доступных из списка ресурсов ПО LSC;

· между программными именами всех контактов и катушек, с одной стороны, и соответствующими аппаратными средствами ЦСАУ должно соблюдаться однозначное соответствие;

· каждый программный цикл инициализируется внешним сигналом, формируемым пусковой электрической кнопкой или датчиком;

· последовательный опрос программных элементов осуществляется тактовой частотой CPU естественным образом; по каждой строке – слева направо, по строкам сверху вниз;

· передача управления от предыдущего программного элемента к последующему происходит только при завершении опрашиваемым элементом соответствующей функции;

· по завершении полного цикла CPU передаёт управление 1-й строке LAD – программы для повторения цикла при условии повторной инициализиции.

Программные контакты активизируются (или деактивизируются) электрическими сигналами с выходов датчиков и сигнальных элементов ЦСАУ, изменяя их внутреннее бит-состояние на противоположное.

Табл.1 (приложение 2) иллюстрирует управление внутренним состоянием программных Со-элементов при подключенном +Uп и, как следствие, значением битов их выходов.

Нормально разомкнутый контакт будем называть просто нормальным, его инверсной формой является нормально замкнутый контакт. В 4-м столбце табл.1 дано обозначение активизирующих сигналов Uвх, которые поступают на соответствующие входы или катушки LOGO, а также значения их битов. Тип программного контакта выбирает программист в зависимости от поставленной задачи.

По умолчанию все программные элементы подключены к виртуальной шине питающего напряжения +Uп. Тогда программный Со-элемент находится в пассивном состоянии, если значение активизирующего сигнала Uвх=0, в активном состоянии – если значение Uвх=1 (5-й столбец табл.1). Наоборот, программный Со-элемент инверсного типа находится в пассивном состоянии, когда значение Uвх=1, и в активном – если Uвх=0.

Таким образом, коэффициент Kвн, который характеризует внутреннее состояние активного Со-элемента, равен 1, а для пассивного элемента Квн=0. Для инверсной формы Со-элемента необходимо изменить общую вертикальную шину питания Uп на локальную так, как показано в 6-м столбце табл.1.

Потенциал U вых п.к или бит на выходе программного контакта может быть определен по формуле:

где Gвх – бит-сигнал с выхода релейного датчика или сигнального элемента, т.е. сигнал на входе соответствующего независимого контакта (6-й столбец табл.1). В режиме эмуляции LAD-программы активные элементы выделяются красным цветом, а пассивные – черным.

Читайте также:
Как открыть программу itunes на Айфоне

Программные управляемые контакты называются независимыми в том смысле, что их бит-состояние не зависит от состояния катушек реле, с которыми они соединены.

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

Особенностью блоков группы SF является то, что они обладают формальными свойствами катушек, то есть SF-блоки порождают свои контакты, которые управляют бит-состояниями других программных элементов.

5. Техника конфигурирования LAD-программы

Для создания LAD-программы по техническому заданию заказчика необходимо в окне LOGO! Soft Comfort открыть файл, присвоить ему соответствующее имя как самостоятельному файлу и сохранить на жестком диске PC.

Технику конфигурирования управляющих программ рассмотрим на трех примерах.

ПРИМЕР 1

Программа самоблокировки выходного реле контроллера LOGO! (например, имеющего катушку Q1) при импульсном включении реле датчиком.

Конфигурирование этой LAD-программы состоит из следующих этапов:

Этап 1. Выбрать, выделив мышкой в списке Со-элементов «Панели инструментов программирования», нормально разомкнутый контакт. Переместить этот контакт на рабочее поле, отступив от вертикальной шины Uп на 2-3 позиции. На поле «всплывает» окно «Доступные блоки» со списком имён всех программных элементов (рис. 7).

LSC предлагает имя для выбранного элемента, например, I1. Программист может согласиться с именем I1 или присвоить данному элементу другое имя.

Этап 2. Аналогично на той же строке разместить нормально замкнутый контакт I2, отступив от контакта I1 вправо на 3-4 позиции.

Этап 3. Выбрать, выделив в списке Со-элементов катушку нормального (неинверсного) типа, присвоив ей имя Q1. Разместить катушку Q1 в конце первой строки программы.

Цепочка из последовательно соединенных элементов I1, I2 и Q1 не обладает памятью по состоянию независимого контакта I1 после его включения кратковременным импульсом напряжения длительностью τ. Это означает, что после прохождения заднего фронта активизирующего импульса внутренне состояние Kвн=1 катушки Q1 возвращается к начальному Квн=0, в котором она находилась до прохождения переднего фронта импульса. Для сохранения состояния Kвн=1 катушки Q1 необходимо дополнить строку I1, I2, Q1 зависимым контактом Q1, соединив его с I1 по логической схема «ИЛИ».

Этап 4. Выбрать зависимый нормально разомкнутый контакт Q1 и расположить его на 2-й строке поля под контактом I1.

Этап 5. На «Панели инструментов программирования» выбрать «Соединитель». Выполнить мышкой соединения программных элементов между собой и шиной Uп как показано на рис.8, пример 1.

Составление программы завершено.

Рабочее окно ПЛК для примера 1

В случае необходимости программист на любом этапе конфигурирования может обратиться к справочной службе LSC или к контекстному меню. Для этого необходимо указать курсором мышки на соответствующий объект в вертикальном списке программных элементов и щелкнуть на значке (help — помощь), появившемуся справа от наименования запрашиваемого объекта.

Редактирование LAD-программы, а также внесение необходимых дополнений осуществляется стандартными приемами Edit Windows.

Этап тестирования, или эмуляции LAD-программы. Для переключения LSC в режим эмуляции необходимо щелкнуть на значке (эмуляция) панели «Инструменты программирования». Под рабочим полем LSC появится строка «Входные и выходные объекты эмуляции» (то есть «датчики» внешних сигналов и катушки, задействованные в программе).

Тип «датчика» пуска программы выбирается из вкладки «Эмуляция» окна «Доступные блоки». Расцветка изображений программных элементов, вертикальной шины +Uп и соединительных линий изменится: шина, активные программные элементы (по начальным условиям), а также соответствующие соединения станут красного цвета. Имитация пуска LAD-программы осуществляется щелчком или двумя щелчками (в зависимости от типа «датчика») на программном пусковом контакте I1. Разблокировка схемы ­производится щелчком на I2.

Катушка Q5, подключенная параллельно катушке реле Q1, иллюстрирует работу нагрузки инверсного типа.

ПРИМЕР 2

Программа включения катушки Q 4 LOGO! и её автоматического отключения через заданный временной интервал Δ t. Включение осуществляется, например, в момент t = t1 импульсом длительностью T = t2 – t1 = 15мс, формируемым бесконтактным датчиком, интервал Δt = 20с.

Для реализации программы, кроме независимого нормально разомкнутого контакта, который активизирует процесс, необходимо использовать SF -блок – таймер с задержкой отключения катушку реле Q. Таймер с задержкой отключения включается, т.е. переводится в состояние 1, по заднему фронту входного Trg- импульса (в момент t2) и сбрасывается по истечении заданного интервала задержки Δ t. Выходной бит таймера в момент t 2 принимает значение 1 и сохраняет его до t3= t2 + Δt. Катушка реле включается синхронно с включением таймера в момент t = t3.

Рассмотрим конфигурирование этой LAD-программы.

Этап 1. Выбрать мышкой в списке Со-элементов нормально разомкнутый контакт, переместить его на рабочее поле LSC-интерфейса программирования. Присвоить этому контакту имя, например, I3.

Этап 2. Выбрать из списка SF-блоков таймер с задержкой выключения, присвоить ему имя T050, разместить его на той же строке, отступив вправо от I3 на 3-4 позиции. Щелкнув правой кнопкой мышки на этот блок, открыть диалоговое окно «Свойства» и настроить таймер на заданный интервал отключения Δt=20с.

Этап 3. Выбрать из списка Со – элементов нормально разомкнутый контакт, присвоить ему имя таймера Т050 как зависимому контакту. Разместить его на 2-й строке программы. Бит-состояние этого контакта будет изменяться в соответствии с табл.2 (3-й столбец).

Этап 4. Выбрать катушку Q4, разместить её на 2-й строке справа от контакта T050.

Этап 5. Соединить программные элементы I3, таймер T050, контакт T050 и Q4, как показано на рис.8, пример 2.

Читайте также:
Как запомнить школьную программу

Этап эмуляции программы. Выбрать тип пусковой кнопки, например, «Переключатель» в окне «Доступные блоки» (вкладка «Эмуляция»). Запустить LAD-программу двойным щелчком на контакте I3, имитируя тем самым импульс запуска ЦСАУ от электрического ёмкостного датчика, подключенного к входу I3 LOGO! Наблюдать работу системы: бит-состояние катушки Q4 будет изменяться синхронно с изменением состояния контакта T 050 таймера (4-й столбец табл.2).

Таблица 2

Состояние Вход-выход Активизирую-щий сигнал Выходной бит Т050-контакта Выходной бит катушки Q
Начальное состояние (временной интервал Δt=t0 -t1)
Интервал Δt=t1-t — 2
Момент t + 2 Переход из 1 в 0
Интервал Δt= t3 – t + 2
Момент t + 3

ПРИМЕР 3

Составить LAD – программу загрузки в контейнер 7-ми деталей и автоматического включения привода перемещения контейнера через 2,0 с после загрузки в него последней детали.

В этой программе необходимо использовать реверсивный счётчик, счётный вход которого должен быть подключен к фотоэлектрическому датчику, через программный контакт LOGO!

Необходимая информация о работе и настройке счётчика содержится в разделе «Реверсивный счетчик» справочной службы LSC.

Конфигурирование LAD – программы для примера 3.

Этап 1. На рабочем поле LSC выставляем независимый контакт I4, который срабатывает при воздействии на него сигнала от фотоэлектрического датчика.

Этап 2. Выбрать из списка SF-блоков реверсивный счетчик, например C051, расположить его справа от контакта I4, отступив от I4 3-4 позиции. Открыть диалоговое окно «Свойства», настроить счётчик C051 в соответствии с заданием:

· на входе Cnt установить 7 (заданное число деталей);

· в качестве параметра Dir установить 1 (счет вперед);

· вход Par не использовать (по умолчанию счет деталей начинается с 0);

· вход R подключить к программному контакту сброса счетчика в исходное состояние.

Этап 3. Выставить независимые контакты I5 и I6 соответственно для сброса счетчика и введения параметра Dir (в случае необходимости) на 2-й и 3-й строках программы.

Этап 4. Выбрать зависимый контакт C051, разместить его на 4-й строке.

Этап 5. Выбрать, разместив на 4-й строке, T052 – таймер с задержкой включения. Настроить его на 2,0 с.

Этап 6. На 5-й строке программы разместить T052 – нормальный контакт таймера T052, а справа от этого контакта – катушку реле Q6. Катушка Q7 подключена параллельно катушке реле Q6 для имитации работы нагрузки инверсного типа. Выключение привода контейнера может быть выполнено оператором ЦСАУ по его усмотрению через воздействие на контакт I5.

Этап 7. Выполнить соединение всех элементов, как показано на рис.8, пример 3.

Этап эмуляции. Выбрать тип пусковой кнопки. Убедиться в правильности функционирования элементов и LAD-программы в целом.

Программы для примеров 1, 2, 3.

6. Интеграция контроллера LOGO! в управление пневмоприводом.

Воспользуйтесь поиском по сайту:

studopedia.org — Студопедия.Орг — 2014-2023 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с) .

Источник: studopedia.org

Программирование на языках LAD, STL и FBD

Каждый вход и выход имеет абсолютный адрес, предопределенный конфигурацией аппаратуры. Этот адрес указывается непосредственно, например: I 1.5 (вход-байт 1-бит 5). Абсолютный адрес может быть заменен символическим именем по вашему выбору (рис.53).

Рис. 53 Распределение адресов

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

Создание программы в OB1

В STEP 7 программы S7 создаются на стандартных языках программирования: контактный план (LAD), список операторов (STL) или функциональный план (FBD), рисунок 54. На практике необходимо решить, какой язык использовать.

Рис. 54 Стандартные языки программирования

Блок OB1 теперь откроется в соответствии с языком, который вы выбрали при создании блока в мастере проекта. Однако вы можете в любое время изменить язык программирования, установленный по умолчанию.

Копирование таблицы символов и открытие OB 1

Для копирования таблицы символов необходимо открыть свой проект «Getting Started». Для этого щелкните на кнопке Open [Открыть] на панели инструментов, выберите проект «Getting Started», который был создан, и подтвердите с помощью OK.

В зависимости от того, какой язык программирования решено использовать, откройте один из следующих проектов:

Ø zEn01_06_STEP7__ LAD _1-9;

Ø zEn01_02_STEP7__ STL _1-9;

Ø zEn01_04_STEP7__ FDB _1-9.

В методических указаниях приведены все три примера проектов. Необходимо открыть „zEn01_XXX“ и достигнуть компонент Symbols [Символы]. Далее студент может скопировать его с помощью буксировки в папку S7 Program в окне своего проекта «Getting Started». Затем окно „zEn01_XXX“ закрывается. Дважды щелкнув на OB 1 в проекте «Getting Started» и откроется окно для программирования LAD/STL/FBD.

Буксировка означает, что вы щелкаете мышью на любом объекте и перемещаете его, удерживая кнопку мыши нажатой. Когда вы отпускаете кнопку мыши, объект вставляется в выбранной позиции. В STEP 7 OB 1 обрабатывается CPU циклически. CPU читает и исполняет строку за строкой команды программы. Когда CPU возвращается к первой строке программы, он завершает ровно один цикл.

Время, необходимое для этого, называется временем цикла сканирования. Все блоки программируются в окне LAD/STL/FBD.

Рис. 55 Окно для программирования LAD/STL/FBD

Программирование ОВ 1 в виде контактного плана

Далее рассмотрим примеры программирования последовательной, параллельной цепи и функцию памяти SR (установка / сброс) в виде контактного плана (LAD).

Программирование последовательной цепи в контактном плане. Если необходимо, установите LAD в качестве языка программирования в меню View [Вид]. Щелкните в области заголовка (title) OB1 и введите, например, «Циклически обрабатываемая главная программа». Выберите путь тока для своего первого элемента. Щелкните на этой кнопке на панели инструментов и вставьте нормально открытый контакт (рис.56).

Читайте также:
Установить программу банка открытие

Рис. 56 Последовательная цепь в контактном плане

Таким же образом вставьте второй нормально открытый контакт. Вставьте катушку у правого конца пути тока. В этой последовательной цепи пока отсутствуют адреса нормально открытых контактов и катушки. Проверьте, активизировано ли символическое представление (Symbolic Representation).

Щелкните на знаке . и введите символическое имя «Key_1 [Ключ_1]» (в кавычках). Подтвердите, нажав Enter. Введите символическое имя «Key_2 [Ключ_2]» для второго нормально открытого контакта. Введите имя «Green_Light [Зеленый_свет»] для катушки.

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

Вы можете также вставить символическое имя непосредственно из таблицы символов. Щелкните на знаке . , а затем выберите команду меню Insert >Symbol [Вставить > Символ]. Просматривайте прокручиваемый список, пока не достигнете соответствующего имени, и выберите его. Символическое имя добавляется автоматически.

Для программирования параллельной цепи в контактном плане выделите Network 1 [Сегмент 1]. Вставьте новый сегмент. Снова выберите путь тока. Вставьте нормально открытый контакт и катушку. Выделите вертикальную линию в пути тока. Вставьте параллельную ветвь.

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

Напишите у верхнего нормально открытого контакта «Key_3 [Ключ_3]», у нижнего контакта «Key_4 [Ключ_4]», а у катушки «Red_Light [Красный_свет]» Сохраните блок.

Рис. 58 Параллельная цепь в контактном плане

Для программирования функции памяти в контактном плане выделите Network 2 [Сегмент 2] и вставьте еще один сегмент (рис.59). Снова выделите путь тока. Перемещайтесь в каталоге элементов программы в разделе Bit Logic [Двоичная логика], пока не достигнете элемента SR. Дважды щелкните, чтобы вставить этот элемент. Вставьте нормально открытый контакт перед каждым из входов S и R. Введите следующие символические имена перед элементом SR:

Ø Верхний контакт «Automatic_On

Ø Нижний контакт «Manual_On

Ø Элемент SR «Automatic_Mode

Сохраните блок и закройте окно.

Рис. 59 Функция памяти в контактном плане

Источник: cyberpedia.su

4. Язык lad на примере контроллера s7-200. Пример: Реверсивное включение ад.

После запуска STEP 7-Micro/WIN появляется следующее окно.

Для загрузки текущей программы выполните команду File/ Download. При этом появляется окно загрузки программы. В этом окне выберите элементе проекта, который вы хотите загрузить. Затем щелкните на кнопке Download.

Для запуска загруженной программы щелкните на кнопке Run. Вы можете наблюдать за работой программы, выполнив команду Debug/ Program Status. Step 7-Micro/Win отображает значения команд.

Step7 позволяет программировать на языках LAD, FBD, STL

Область памяти контроллера

Вы можете получить доступ к области памяти в байтах, словах или двойных словах. Например, IB4 – доступ к 4-му байту в области входов; VW100 – доступ к 100-му слову (W) в области переменных (V).

Для обращения к биту в области памяти вы указываете адрес, который включает в себя идентификатор области памяти, адрес байта и номер бита.

I = вход (input), 3 = байт, 5- адрес бита.

CPU опрашивает физические входы в начале каждого цикла и записывает эти значения в регистр входов образа процесса. Формат:

Бит I [адрес байта] . [адрес бита] — I0.1

Выходы Формат:

Бит Q [адрес байта] . [ адрес бита] — Q1.1

Область памяти переменных (адреса VB0 – VB2047)

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

Бит V[адрес байта].[адрес бита] V10.2

Система команд

Эти команды получают значение из памяти или из регистра образа процесса, если типом данных является I или Q.

1 .Нормально открытый контакт. Замкнут (включен), когда управляющий бит равен 1.

2 . Выход. Когда выполняется команда Выход, в регистре образа процесса устанавливается выходной бит, здесь Q0.0 .

3. Нормально замкнутый контакт замкнут (включен), когда управляющий бит равен 0.

Пример 2. Реверсивное включение асинхронного двигателя

В этом примере используются кнопки:

Бит I0.0 кнопка Вперед,

Бит I0.1 кнопка Назад,

Бит I0.2 кнопка Стоп,

Бит Q0.0 пускатель_0 включения вперед,

Бит Q0.1 пускатель_1 включения назад.

В этой программе использование нормально замкнутых контактов Q0.0 и Q0.1 приводит к “электронной” защите цепи от одновременного включения кнопок Вперед и Назад.

Установка, сброс N битов

К оманды установки и сброса устанавливают или сбрасывают указанное количество битов, начиная с указанного адреса. Вы можете установить или сбросить от 1 до 255 битов.

Если команда сброса указывает на бит таймера или счетчика, то команда сбрасывает бит таймера или счетчика и стирает текущее значение таймера или счетчика.

Положительный, отрицательный фронт

К онтакт Положительный фронт пропускает поток сигнала в течение одного цикла при каждом появлении положительного фронта.

К онтакт Отрицательный фронт пропускает поток сигнала в течение одного цикла при каждом появлении отрицательного фронта.

Этот короткий импульс может быть использован для включения/ отключения устройств с помощью блоков S и R.

Пример. Нереверсивное включение двигателя

При нажатии кнопки Пуск (I0.0 – нормально разомкнутый) двигатель включается, а при нажатии кнопки Стоп (I0.1 – нормально замкнутый) двигатель отключается.

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru