Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Логика реле

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

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

Логические схемы реле представляют физическое соединение устройств.

Каждая ступенька будет иметь уникальный идентификационный номер, а отдельные провода на этой ступени будут иметь номера проводов, производные от номера ступени. Таким образом, если бы цепь была помечена как 105, первый независимый провод имел бы номер 1051, второй — 1052 и так далее. Провод будет называться по самой верхней ступени, к которой он подключен, даже если он разветвляется на более низкие ступени. При проектировании системы было обычной практикой пропускать номера звеньев, чтобы можно было в дальнейшем добавлять их по мере необходимости.

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

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

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

2. Выходные устройства всегда подключены к L2. Любые электрические перегрузки , которые должны быть включены, должны быть показаны между выходным устройством и L2; в противном случае устройство вывода должно быть последним компонентом перед L2.


Пример схемы лестничной логики

Рисунок 1 из патента Вернама.

Про поворотный стол, или Релейная логика глазами дилетанта

Попросили меня как-то друзья помочь с программированием контроллера поворотного стола для фотографирования. Эти столы используются для круговой съёмки. Часто результат такой съёмки можно видеть в интернет-магазинах, когда товар можно покрутить и рассмотреть с разных сторон.

Как сделать фото 360°? Можно поставить объект на поворотную платформу, затем вручную перемещать её на определённый угол и щёлкать затвором фотоаппарата. Но лучше этот процесс автоматизировать.

Друзья мои давно занимаются этим бизнесом, сами разрабатывают и делают автоматизированные поворотные столы разных размеров на основе шагового двигателя с контроллером. Раньше у них применялся контроллер, работающий под управлением компьютера. Потом производство этих контроллеров прекратилось, и потребовалось написать программу для нового автономного контроллера.

Дело для меня совершенно новое. Я никогда не занимался АСУ, с релейно-контактной логикой незнаком, про ПЛК не слышал. Ну что ж, тем интереснее будет разобраться, что такое релейная логика и что представляют из себя языки LD (Ladder Diagram) и IL (Instruction List).

Bот что можно получить при помощи поворотного стола:

А вот сам поворотный стол:

А это контроллер SMSD‑1.5Modbus. Кстати, отечественная разработка. Впрочем, на его месте мог бы быть любой другой ПЛК:

Контроллер поставляется с софтом. Используются оба языка программирования LD и IL. Расскажу немного про лестничные диаграммы. Вот основные элементы языка LD:

входной сигнал, нормально-открытый контакт

входной сигнал, нормально-закрытый контакт

выход, катушка

Входные контакты обозначаются буквой X с циферкой. Нормально-открытый контакт срабатывает, когда на вход подаётся сигнал. Нормально-закрытый контакт в обычном состоянии замкнут и срабатывает, когда входной сигнал пропадает.

Входные контакты можно комбинировать. Это логическое И:

А это логическое ИЛИ:

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

Символ для входного импульсного сигнала с опросом по переднему фронту

Символ для входного импульсного сигнала с опросом по заднему фронту

Символ для прикладных инструкций

Символ логической инверсии

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

А вот более интересный случай:

Здесь при замыкании контакта X5 выход Y3 изменит свое состояние на замкнутое, однако, при размыкании контакта X5 выход Y3 сохранит свое замкнутое состояние до тех пор, пока не будет включен вход X6. Контакт Y3 является самоблокировочным.

Язык лестничных диаграмм является производным от релейно-контактной принципиальной электрической схемы в упрощенном представлении. Вот для сравнения релейно-контактная электрическая схема и соответствующая LD-диаграмма:

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

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

В процессе работы контроллер непрерывно опрашивает текущее состояние входов и изменяет состояние выходов в зависимости от программы пользователя. На первом этапе происходит считывание состояния физических и виртуальных Modbus Coils входов и их буферизация во внутренней памяти контроллера. Да, контроллер может управляться и по протоколу Modbus, но поскольку я использовал его автономно, рассказывать про Modbus не буду.

На втором этапе происходит обработка состояния буферизированных входов и изменение состояния выходов в памяти контроллера по заданной программе пользователя. На третьем этапе контроллер изменяет состояние физических и виртуальных выходов.

IL-программа состоит из последовательности отдельных управляющих инструкций. Контроллер обрабатывает инструкции последовательно, одну за другой. Собственно, в контроллер загружается именно последовательность инструкций с операндами. Инструкций много. Есть команды проверки входных условий, есть арифметические, битовые и логические команды, возможна целочисленная арифметика и арифметика с плавающей точкой. Есть возможность использования прерываний и подпрограмм.

Наконец, есть группа команд для управления двигателем.

Операндами являются регистры (общего назначения, энергонезависимые и индексные), меркеры (однобитные ячейки памяти), таймеры, счётчики и константы.

Можно считать, что контроллер – это десятки или сотни отдельных реле, счетчиков, таймеров и память. Все эти регистры, счётчики, таймеры физически не существуют, а моделируются процессором.

На этой картинке показана LD-диаграмма и соответствующая IL-программа:

IL внешне очень похож на ассемблер. Есть фиксированный набор команд, команды могут иметь один или несколько операндов. Это и ввело меня в заблуждение. Вначале я вообще вообразил, будто IL-программа транслируется в ассемблер и затем исполняется в контроллере. Оказалось, что это не так. Команды вместе с операндами переводятся во внутренний формат и на каждом цикле обрабатываются исполняющей средой, то бишь прошивкой контроллера.

Некоторой неожиданностью для меня стало то, что любой отдельный кусок программы обязательно должен начинаться с инструкции LD (нормально-открытый контакт) или LDI (нормально-закрытый контакт).

Иными словами, большинство исполнительных инструкций требует наличие входного условия, их нельзя поставить на выполнение как одиночные инструкции. Это я не сразу усвоил. Есть лишь несколько исключений из этого правила: это указатели I, P, команды конца программы END, FEND, а также IRET, SRET, EI, DI, NEXT, FOR. То есть, получается, что вся программа – это набор альтернатив, только вместо IF или IF NOT надо использовать LD и LDI (есть ещё несколько входных инструкций, но не суть).

К сожалению, прилагаемый софт слишком терпимо относится к ошибкам, и отслеживает только совсем уж явные несообразности в коде. То есть можно иметь одиночные инструкции, или, например, поставить условие перед командой выхода из подпрограммы – это не помешает загрузить такую программу в контроллер и исполнять её. Вот только работать такая программа будет некорректно или нестабильно.

Мне нужно было реализовать четыре режима работы: видеорежим с возможностью регулировать скорость вращения стола кнопками пульта, ручной режим, где нужно совершать каждый шаг стола и спуск затвора фотоаппарата вручную посредством кнопок, автоматический режим, где стол совершает полный оборот за заданное количество шагов с автоматическим спуском затвора, и наконец, режим non-stop, в котором стол совершает полный оборот без остановок, а затвор фотоаппарата автоматически срабатывает в нужные моменты.

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

Здесь не так. Логика работы размазывается по разным ветками исполнения. Сначала мы создаём таймер по входному условию и задаём время задержки, и уже где-то совсем в другом месте используем таймер в качестве входного контакта, который замкнётся по истечении заданного времени. Я, правда, проверял таймер сразу же, так привычней:

LD    M109      ;произошла ошибка и горел индикатор
TMR   T0   K10	;запустим таймер на 100ms, он будет отсчитывать время, пока его вход M109 включён
AND   T0        ;таймер сработал
RST   M109      ;сбрасываем индикатор 

Но самые большие трудности, как ни странно, у меня вызвали циклы. Расскажу чуть подробнее – это весело.

Цикл нужен, чтобы сделать полный оборот стола и остановиться. Тут меня немного сбил с толку код, написанный моими приятелями. Этот код использовал инструкции FOR-NEXT и пусть через пень-колоду, но работал. Начал я рефакторить код и столкнулся с проблемами. Пробую и так и сяк, и ничего не получается. Я даже задумался о полноте по Тьюрингу: что это за язык такой, в котором нельзя по-человечески цикл организовать! Долго бился, пока, наконец, меня не осенило: да ведь цикл-то и так есть, и это цикл исполнения программы в контроллере! Нужно просто использовать счётчик, поместив в него нужное количество шагов. Счётчик будет инкрементироваться на каждом прогоне программы. Тут, правда, есть некоторая тонкость: счётчик инкрементируется, когда его внутренний сигнал меняет своё состояние с 0 на 1, так что придётся менять состояние входного сигнала счётчика вручную. Когда счётчик полон, цикл надо считать законченным.

Я как-то в горячке упустил из виду, что если я буду пытаться использовать инструкции FOR-NEXT, очередной прогон программы не закончится до тех пор, пока не закончится мой цикл. Понятно, что управлять шаговым двигателем таким образом невозможно, ведь управляющие импульсы будут подаваться на двигатель только после завершения очередной итерации сканирования программы. А зачем же тогда предусмотрены инструкции FOR и NEXT? Ну, наверно, чтобы проинициализировать регистры, например.

Тем не менее, интереса ради я реализовал цикл в классическом виде (для его выполнения потребуется тысяча прогонов программы):

P     10        ;начало цикла
LD    M108
DINC  D0        ;тело цикла, инкрементируем регистр D0
LD>   D0  K1000 ;если D0 > 1000
CJ    P20       ;выходим
LD    M108
CJ    P10       ;переход на начало цикла
P     20
LD    M108
SET   Y10       ;выставляем выход Y10, чтобы убедиться, что цикл закончен

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

А ещё выяснилось, что по мере увеличения скорости двигателя отзывчивость на нажатия кнопок снижается. Это произошло в видеорежиме, где стол должен плавно менять скорость при нажатии кнопок на пульте. То есть жмём кнопку – стол разгоняется. Я обнаружил, что по мере увеличения скорости время цикла программы увеличивается, и, соответственно, стол разгоняется медленней.

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

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

В общем, с программой я успешно справился, и друзья мои были довольны. Хорошо, что производитель контроллеров был отзывчивым: быстро отвечал на мои вопросы на форуме и помог в написании программы.

Выводы:

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

  2. Возможности ПЛК весьма широки: можно реализовать довольно сложные и замысловатые программы. Есть, конечно, ограничения по количеству регистров, меркеров и указателей перехода, или вот, скажем, уровень вложенности подпрограмм в используемом контроллере не более 8, но не думаю, что это сколько-нибудь серьёзные ограничения.

Предчувствую вопрос: а не лучше ли воспользоваться Ардуино? Да, написать программу под Ардуино для среднестатистического программиста гораздо проще, чем разбираться с релейной логикой. Впрочем, не факт, что это будет проще для инженера АСУ.

ПЛК предназначены, как правило, для промышленного использования. Это значит, что они могут работать в более суровых условиях, они мощнее и могут использовать больше входов. ПЛК надёжны, масштабируемы, имеют длительный срок службы. Кроме того, к промышленным ПЛК могут предъявляться повышенные требования безопасности. Отсюда вытекает главный недостаток: цена.

Недавно стоимость контроллера существенно увеличилась, и мои друзья стали подумывать о замене. И Ардуино – один из вариантов. Всё-таки поворотные столы эксплуатируются в мягких условиях, и использовать дорогой ПЛК совсем необязательно. Планируется использовать связку контроллера с силовым драйвером и управлять двигателем посредством ШИМ.

В заключение, пару слов о шаговых двигателях. Шаговый двигатель – вещь отличная, за исключением одного недостатка: они слишком шумные. Иногда стол попадает в резонанс и начинает довольно громко дребезжать. Поэтому мы будем пробовать коллекторные двигатели.  Они не шумят, да и цена у них чуть ниже. Правда, в этом случае в схему придётся добавить энкодер для обеспечения обратной связи. Если тема заинтересует аудиторию, расскажу потом, что у нас из этого получилось.

Если вас заинтересовал поворотный стол, то вот видео:

Спасибо за внимание!

Программирование ПЛК | Как читать лестничную логику

Что такое лестничная логика?

Ladder Logic входит в пятерку самых популярных языков программирования ПЛК, используемых в производственной среде. До появления программируемых логических контроллеров производственные предприятия использовали схемы на основе реле для питания различных нагрузок в зависимости от того, как реле были соединены вместе. Реле были дорогими, требовали постоянного обслуживания и не могли быть легко переконфигурированы. Поскольку ПЛК взяли на себя этот процесс, было важно сохранить подобие старой системы; таким образом, релейная логика была создана как первый язык программирования ПЛК .

Ladder Logic помечен как таковой, потому что программное обеспечение имеет форму лестницы. С левой стороны инструкции лестничной логики задаются как условия, а инструкции с правой стороны — это инструкции, которые запускаются при выполнении условий. Каждая ступень лестницы проходит слева направо и выполняется ПЛК сверху вниз.

Как упоминалось выше, лестничная логика чрезвычайно популярна среди программистов ПЛК. это прост в освоении, имитирует электрические цепи и легко устраняется после развертывания .

Изучение лестничной логики обычно является отправной точкой для карьеры программиста ПЛК в системах управления. В этом посте мы рассмотрим компоненты лестничной логики, рассмотрим основные принципы и расскажем, что нужно для освоения этого языка программирования.

Основы релейной логики

Как и компьютеры, ПЛК работают с двоичными сигналами; каждый из них может быть установлен равным нулю или единице. В мире программирования этот тип данных называется логическим. Булево значение занимает один бит в памяти, может быть установлено в 0 или 1 и используется в большинстве основных инструкций ПЛК .

ПЛК выполняет загруженную в него программу по одной цепочке за раз. Когда ПЛК начинает обрабатывать цепочку, он считывает инструкции слева и определяет, установлена ​​ли логика на этой стороне ступени в ИСТИНА. Логика оценивается как ИСТИНА, когда гипотетический ток может пройти через инструкции. Каждая инструкция имеет набор условий, которые делают ее ИСТИННОЙ или ЛОЖНОЙ.

В рамках данного руководства мы начнем с двух самых основных инструкций по программированию ПЛК с релейной логикой: «Проверить, закрыто» и «Включить питание».

Проверить, если закрыто [XIC] – Эта инструкция ввода будет проверять указанный логический бит и оценивать условие как ИСТИНА, когда бит установлен в 1 (или ВЫСОКИЙ). Пока бит установлен в 0 (или НИЗКИЙ), инструкция оценивается как ЛОЖЬ.

Активация вывода [OTE] — Эта инструкция вывода установит указанный бит в 1 (или ВЫСОКИЙ), если условия входной инструкции ИСТИННЫ. Если они FALSE, инструкция Output Energize установит бит в 0 (или НИЗКИЙ).

Базовый анализ ступеней релейной логики

  • Шаг 1 – Гипотетический ток начинает двигаться слева направо.
  • Шаг 2 – Когда гипотетический ток встречается с инструкцией XIC, он проверяет, является ли условие ИСТИННЫМ или ЛОЖНЫМ. Если XIC имеет значение False, ПЛК прерывает эту цепочку.
  • Шаг 3 – Гипотетический ток переходит к следующей инструкции. Повторяет шаг 2, пока цепь не будет завершена.
  • Шаг 4 – ПЛК переходит на следующую ступень.
Программирование ПЛК релейной логики XIC = OFF Пример

В приведенном выше примере инструкция XIC привязана к биту «Condition1». Поскольку бит выключен (или равен 0), гипотетический ток останавливается на инструкции.

Программирование ПЛК релейной логики XIC = ON Пример

В приведенном выше примере инструкция XIC привязана к биту «Condition1». Поскольку бит находится в состоянии ON (или 1), гипотетический ток может проходить и переходит к инструкции OTE. Инструкция OTE устанавливает бит «Energize1» в HIGH (или 1).

Лестничная логическая структура | Ответвления схемы


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

Пример ответвления цепи программирования ПЛК Ladder Logic

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

  • Шаг 1 – Гипотетический ток начинается на главной ветви ступени. Когда он достигает «Условия 1», он оценивает инструкцию XIC. Инструкция XIC имеет значение TRUE и позволяет протекать току.
  • Шаг 2 – Гипотетический ток течет к следующей инструкции XIC и пытается ее оценить. Поскольку «Условие2» установлено на 0, инструкция XIC оценивается как FALSE. Ток остановлен.
  • Этап 3 – Гипотетический ток возвращается к первой ветви. Выполняется инструкция XIC, привязанная к биту «Condition3». Поскольку бит «Condition3» имеет ВЫСОКОЕ значение, XIC оценивается как TRUE. Текущее продолжается.
  • Шаг 4 – Ток достигает инструкции OTE и устанавливает бит «Energize1» в состояние ON (или ВЫСОКИЙ).

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

Ladder Logic PLC Programming Circuit Branch Advanced Example

Advanced Circuit Branching Ladder Logic Practice

Теперь, когда вы знакомы с тем, как работают ветви схемы в релейной логике, важно попрактиковаться в отслеживании логики , как в полевых условиях. Большая часть вашей работы в качестве программиста ПЛК будет заключаться в изучении звеньев логики и выяснении того, почему выход находится под напряжением или что мешает его включению.
Рассмотрим следующую ситуацию: ваш руководитель звонит вам из-за проблемы на производственной линии. По какой-то причине насос, который будет подавать сырье в конкретный резервуар, не включается. Когда вы подходите к станции оператора, он показывает вам, что когда он нажимает кнопку, насос ничего не делает.
Разрешение: смотришь на панель, сам нажимаешь кнопку и подтверждаешь, что не запускается. Этот насос работал в прошлом, поэтому вы решили посмотреть, что происходит в логике ПЛК . Когда вы отслеживаете выход, связанный с насосом, вы замечаете сложную цепь с несколькими ответвлениями цепи. Причина в том, что существует множество условий для запуска этого насоса. Поскольку вы знакомы с описанным выше подходом, вы можете быстро понять, что насос не мог запуститься, потому что одним из условий запуска было то, что бак должен быть пустым. По мере того, как вы поняли, что бачок был, по сути, пустым, был сделан вывод о поломке датчика уровня. Вы заменили датчик, и насос возобновил нормальную работу.

Компоненты релейной логики RSLogix 5000

Теперь, когда мы немного познакомились с базовой структурой ступеней, давайте обсудим другие компоненты релейной логики.

Компоненты релейной логики

1 — Входы релейной логики

Как уже говорилось выше, инструкции релейной логики с левой стороны называются входами. Их состояние оценивается на основе истинности или ложности. Если оценка завершается TRUE, выполняется вывод цепочки релейной логики. Если он оценивается как ЛОЖЬ, ПЛК переходит к следующей цепочке.

2 – Ступень релейной логики Комментарии

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

3 – Логические выходы релейной логики

Существует множество инструкций, которые будут выполняться на стороне выхода. В примере, который мы рассмотрели выше, мы сосредоточились на инструкции OTE. Однако на приведенном выше снимке экрана также есть инструкции TON или Timer On Delay. По мере приобретения опыта программиста ПЛК вы столкнетесь с дополнительными инструкциями и освоите их.

4 – Направляющие лестничной логики

Каждая ступень лестничной логики находится между двумя боковыми направляющими (точно так же, как обычная лестница). Эти рельсы заряжают энергией каждую ступеньку по мере их выполнения. На снимке экрана выше вы можете увидеть две направляющие в среде RSLogix/Studio 5000. Рельсы остаются серыми, пока основная подпрограмма не вызовет программу. На скриншоте рельсы зеленые, это означает, что выполняется именно эта логика.

5 – Имена тегов

Каждая инструкция будет привязана к одному или нескольким тегам. Для каждого тега требуется элемент структуры данных, а также имя или метка. В примерах, которые мы рассмотрели выше, теги были помечены как «Условие1», «Условие2», «Условие3» и т. д. В производственных условиях теги обычно отражают физический элемент, которым они управляют , или набор тегов на основе ПЛК. Например, теги, управляющие двигателями, могут иметь метку MTR1_Start, MTR2_Stop, MTR2_Status и т. д. Кроме того, теги могут также иметь описание, которое позволяет пользователю дать тегу текстовое описание.

Программирование релейной логики в RSLogix 5000. Основы

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

Проверить, если закрыто [XIC]

Мы рассмотрели эти инструкции в начале руководства. Это важная проверка входных данных, которую вы можете выполнить для своих данных. Короче говоря, если логическое значение, назначенное XIC, равно TRUE, вывод будет выполнен. Если ЛОЖЬ, то не будет. Хотя может показаться, что это имеет ограниченную полезность, многие расширенные конструкции в ПЛК имеют логическое состояние . Например, частотно-регулируемый привод может иметь массив логических структур, привязанных к различным неисправностям. Следовательно, вы можете создать такое же количество инструкций XIC, чтобы проверить, какой сбой присутствует на диске.

Проверить, если открыт [XIO]

XIO подаст питание на выход, если истинно противоположное XIC. Другими словами, выход активируется, если логическое значение равно FALSE.

Output Energize [OTE]

OTE является выходной инструкцией и устанавливает логическое значение в TRUE, если все предшествующие условия ИСТИННЫ, что приводит к этому. OTE также установит логическое значение в FALSE, если не будет пути TRUE к входным данным, ведущим к нему. Команда Output Energize используется для установки цифровых выходов на полевых устройствах, таких как клапаны, контакторы двигателей, реле, соленоиды и т. д.

Таймер ВКЛ [TON]

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

Инструкция таймера TON в примере релейной логики RSLogix 5000

Наиболее простой командой таймера является Timer ON или TON. Эта инструкция начнет отсчет, как только на вход подается питание. Таймер будет продолжать отсчет времени, пока не достигнет значения, указанного пользователем. Программист ПЛК может использовать логические биты состояния таймера для выполнения логики на основе битов состояния таймера: запущен, завершен или не запущен. Эта инструкция является фундаментальной в программировании ПЛК и часто встречается в базовых последовательностях, логике устранения дребезга и любых других программах, требующих выполнения релейной логики по времени.

Базовая схема управления двигателем — Пример релейной логики программирования ПЛК

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

Цепь пускателя трехфазного двигателя с кнопками и контактором

Прежде чем мы углубимся в программирование, важно понять принцип работы приведенной выше схемы. Вот основные компоненты и этапы работы:

  • Перегрузка 3-фазной цепи – Каждая фаза защищена от перегрузки, которая отключается при протекании большого тока из-за неисправности двигателя или цепи.
  • Контактор двигателя – Контактор действует как мост между цепями высокого напряжения (двигатель) и цепями низкого напряжения (управление (24 В пост. тока)). Когда цепь управления находится под напряжением, силовая цепь может проводить необходимый ток.
  • Кнопка запуска – При нажатии на контактор включается питание. Через них проходит ток, и двигатель начинает работать.
  • Кнопка останова – При нажатии контактор размыкается и перестает проводить ток, что останавливает двигатель.

Хотя схема проста, есть одна ключевая особенность: кнопки мгновенного действия, используемые для запуска и остановки двигателя, защелкиваются в контакторе. Другими словами, после кратковременного нажатия кнопки «Пуск» двигатель будет продолжать работать до тех пор, пока не будет подана команда «Стоп». В промышленности это называется схемой защелки. Эта схема используется во многих приложениях , включая пускатели машин, конвейеры, запуск процессов и многое другое.

Кнопки мгновенного действия подключаются к цифровым входам ПЛК. При нажатии любой кнопки соответствующие входные биты устанавливаются в HIGH (1). Когда кнопки отпущены, те же входные биты устанавливаются в НИЗКИЙ (0).

Двигатель привязан к выходу, когда установлен ВЫСОКИЙ (1), возбуждает катушку в контакторе и позволяет протекать току.

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

Пример релейной логики — пускатель двигателя, часть 1

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

Пример лестничной логики — пускатель двигателя, часть 2

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

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

  1. Кнопка остановки должна предотвращать запуск двигателя.
  2. Кнопка останова должна останавливать двигатель во время его работы.

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

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

Пример релейной логики — пускатель двигателя, часть 3 (неоптимизированный)

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

Пример лестничной логики — пускатель двигателя, часть 3

Вышеупомянутая цепочка работает следующим образом:

Этап 1 — Нажата кнопка Start_PB, и контактор двигателя находится под напряжением, пока не нажата кнопка Stop_PB.

Этап 2 — Бит MotorContactor используется для поддержания двигателя под напряжением, пока Start_PB отпускается.

Этап 3 – Контактор двигателя обесточивается при нажатии кнопки Stop_PB.

Пример ступенчатой ​​логики пускателя двигателя прост для понимания. Однако, , по мере того, как вы расширяете свои знания о принципах лестничной логики, вы будете создавать сложные ответвления вокруг подобных схем . Нередко несколько условий останова устанавливаются последовательно с битом «Stop_PB». Точно так же часто можно увидеть другие источники запуска двигателя. Например, последовательность может использоваться для запуска конкретной помпы с помощью программного обеспечения.

Заключение

Лестничная логика — наиболее распространенный язык программирования ПЛК. Он прост в освоении, прост в использовании и был принят с первых дней существования программируемых логических контроллеров. Знаменитое сходство с лестницей дало название этому типу логики. Такие схемы использовались для определения электрических чертежей, которые использовались во многих промышленных средах. С тех пор лестничная логика значительно расширилась, но сохранила некоторые основные элементы: рельсы, ступени, условия ввода, инструкции вывода, комментарии и т. д.

Чтобы изучить лестничную логику, вам нужно начать с понимания того, как ток течет от левого рельса к правому. Таким образом, ток будет пытаться проходить по одной ступени за раз. Когда он сталкивается с входным условием, он оценивает результат как ИСТИНА или ЛОЖЬ. Если условие FALSE, ток попытается использовать вторичный путь, который может проходить через ответвление цепи. Если результат TRUE, ток будет выполняться по инструкции. Когда он достигает выходной инструкции, он выполняет указанную логику.

Что такое лестничная диаграмма | EdrawMax Онлайн

Создайте свою лестничную диаграмму Сейчас

1. Что такое лестничная диаграмма?

Лестничные диаграммы — это расширенные схемы, широко используемые для записи логических структур для промышленный контроль. Их называют лестничными диаграммами, потому что они имитируют лестницу с двумя вертикальными перекладинами. (мощность питания) и столько «ступенек» (горизонтальных линий), сколько имеется для представления цепей управления.

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

2. Сценарии применения лестничных диаграмм

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

3. Преимущества использования лестничной диаграммы

  • Интуитивно понятный и самодокументируемый. Лестничная диаграмма обеспечивает превосходную схематическую интерпретацию, ориентированную на хорошо понятные принципы схемотехники.
  • Кривая обучения работе с лестничной диаграммой очень мала из-за доступности среда; навыки простого программирования быстро растут.
  • Это сделало лестничную диаграмму особенно распространенной для приложений, в которых задействован персонал без технических навыков. опыт ремонта или управления, как у некоторых электриков или техников.
  • Лестничная диаграмма предназначена для воспроизведения электрических цепей, это идеальный способ отражения абстрактная логика конечно. Лестничная диаграмма довольно интуитивно понятна для цифровой логики.

4. Почему для программирования ПЛК используется лестничная диаграмма?

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

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

5. Как читать лестничную диаграмму?

Микропроцессоры, подобные тем, которые используются в ПЛК и персональных компьютерах, функционируют на уровне двоичного кода. Вы прочитали слова «нейтральный» предположительно. Это относится к идее о том, что в одном из двух состояний все должно быть задумал о. Можно описать состояния как:

  • 1 или 0
  • Реальный или отрицательный
  • Высокий или низкий
  • Вкл. или Выкл.
  • Да или нет

Релейная логика использует символьные выражения и графический редактор для написания и чтения релейных диаграмм, которые облегчить нам, людям, понимание. Если мы преобразуем реальный случай в лестничный язык, мы символически артикулирует его в форме типично открытого сообщения (НО). Это явление может быть что-нибудь вроде нажатия кнопки или запуска лимитного сдвига.

6. Как создать лестничную диаграмму онлайн

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

В лестничной диаграмме логический поток идет от левого рельса к правому. Там семь фундаментальные аспекты лестничной диаграммы, которые важно изучить при применении системы лестничной логики в ПЛК. Это имена и операторы, относящиеся к линиям, звеньям, входам, выходам, логическим выражениям, адресам. имена обозначений/тегов. Некоторые из них являются обязательными, а некоторые необязательными.

  • Рельсы На лестничной диаграмме есть два рельса, которые нарисованы в виде вертикальных линий, идущих вниз по в первую очередь заканчивается.
  • Ступени Ступени нарисованы горизонтально и связывают рельсы с операторами логики.
  • Входы Входы представляют собой фактические управляющие действия, такие как нажатие кнопки или активация крышки выключатель.
  • Выходы Выходы — это электронные машины, которые включаются и выключаются подобно электродвигателю или электромагнитный рычаг.
  • Логические выражения Логические выражения используются для формулирования требуемых операций управления в сочетание с входами и выходами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *