Страница 1 из 1

1000 вопросов и ответов по ПЛК

Добавлено: 11 ноя 2012, 11:17
Михайло
1) Что такое "программируемый логический контроллер" (ПЛК)?
Programmable logic controller (PLC) - устройство, применяемое в промышленности для автоматизации любых электроустановок в производстве: станков, конвейеров, подъемников, прокатных станов, сварочных линий, испытательных стендов и т.д. ПЛК является базовым "строительным" элементом для автоматизированных систем управления технологическими процессами (АСУТП).
ПЛК принимает сигналы от различных датчиков и по определенной программе выдает команды на исполнительные механизмы. ПЛК обеспечивает широкий выбор типов входных и выходных сигналов. Это достигается благодаря модульной конструкции: ПЛК может быть собран из определенного ассортимента взаимосовместимых модулей, которые наилучшим образом подходят для автоматизации конкретной задачи автоматизации.

Внешний вид контроллера S7-1200 фирмы Сименс:
Контроллер S7-1200
[/size]
Наиболее часто применяемым в промышленности типом сигналов являются дискретные сигналы 24 В постоянного тока. Например, если на дискретном входе ПЛК появляется сигнал выше 15 В, то контроллер принимает это как логическую единицу, если меньше 5 В, то - как логический нуль. Таким образом, ПЛК способен принимать сигналы от кнопочных выключателей, переключателей, путевых выключателей (концевиков), реле давления, реле уровня жидкости, от простых электрических реле, пускателей и т.д.
Дискретные выходы у ПЛК обычно двух типов: релейные и транзисторные. Релейный выход ПЛК способен коммутировать любые цепи с высоким напряжением (обычно до 250 В) как постоянного, так и переменного тока, при этом выход выдерживает токовую нагрузку до 2...10 А. Транзисторные выходы маломощные (типовой ток нагрузки - до 0,5 А), а напряжение, как правило, только 24 В постоянного тока. К транзисторному выходу может быть подключено реле с катушкой 24 В постоянного тока и тем самым могут быть получены все преимущества релейного выхода. Напрямую к транзисторному выходу можно подключить светодиодные лампы, лампы накаливания, неоновые лампы, которые обычно применяются для индикации на различных пультах и панелях управления.
Помимо дискретных входов и выходов у контроллера могут быть аналоговые входы и выходы. Аналоговый вход позволяет подключать к ПЛК недискретные датчики, например, датчики температуры, датчики давления, датчики расхода, датчики усилия и т.д. Распространены стандартные сигналы 0-10 В, -10...10 В, 0-20 мА, 4-20 мА, а также стандартные сигналы температуры 50М, 100М, 50П, 100П, Pt100, Cu100, Ni100 от термосопротивлений и ТХК, ТХА - от термопар. АЦП контроллера оцифровывает и преобразует сигналы, как правило, в 16-битный код (число от 0 до 65535), которые потом могут быть обработаны программно. Выходные аналоговые сигналы (0-10 В, 0-20 мА, 4-20 мА) могут быть использованы для индикации на пультах с помощью вольтметров/амперметров или стандартных цифровых индикаторов, а также для подачи задающего сигнала на различные устройства (регуляторы скорости, регуляторы положения заслонки и т.д.).
Помимо всего этого, ПЛК может иметь несколько сетевых интерфейсов, например, Ethernet, RS485, RS232, USB и другие. Эти интерфейсы могут быть использованы:
- для загрузки программы из компьютера на контроллер,
- для циклического обмена информацией с различными устройствами (с другими ПЛК, с сервером верхнего уровня АСУ, а также с датчиками и исполнительными механизмами, имеющими на своем "борту" соответствующие интерфейсы, например, промышленный робот).
Любой ПЛК программируется с помощью специального программного обеспечения, которое, как правило, разрабатывается самой фирмой-производителем ПЛК. Существуют также открытые среды программирования, например, Codesys, Isagraf и т.д. Некоторые производители предоставляют соответствующее ПО бесплатно.

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 11 ноя 2012, 12:09
Михайло
2) Какие модули для ПЛК мне лучше выбрать?
Любой ПЛК должен обязательно включать в себя один центральный процессор (CPU), этот модуль выполняет все логические и арифметические операции, в его энергонезависимой памяти хранится пользовательская программа. Обычно CPU имеет на своем борту несколько дискретных входов и выходов, а также один или несколько сетевых интерфейсов. Процессорный модуль самодостаточен, он может работать без дополнительных модулей расширения.
Модули расширения ПЛК располагаются вплотную в ряд, бок-о-бок: слева - процессорный модуль, справа - модули ввода дискретных или аналоговых сигналов, модули вывода дискретных или аналоговых сигналов, коммуникационные модули и др. Каждый модуль, в том числе процессорный, имеет на своей правом боку интерфейс внутренней шины ПЛК, к которому с помощью боковых ламелей, объединительных плат или кабелей с разъемами могут подключаться соседние модули. Шина обеспечивает быстрый обмен информацией между CPU и модулями расширения, а также питание электроники модулей расширения от питания процессорного модуля.
В технических характеристиках процессорного модуля указывается максимальное количество модулей расширения, которое может быть подключено. В случае небольшого различия в стоимости различных CPU рекомендуется выбирать более "мощный" процессорный модуль, чем необходимо для текущей задачи автоматизации. Это позволит в дальнейшем без проблем расширить систему управления при модернизации, а также позволит ограничить ассортимент применяемых модулей в ряде задач автоматизации.
Крайне рекомендуется CPU брать с питанием 24 В постоянного тока. Это напряжение можно взять от стандартного стабилизированного блока питания. CPU с питанием ~220 В обычно применяются в бытовых или лабораторных условиях, когда напряжение в сети не "прыгает" сильно.
Аналогичные соображения делаются при выборе модулей расширения. Наиболее удобными являются модули с 16-ю дискретными входами и модули с 16-ю дискретными выходами. Такие модули пригодны для автоматизации как простых, так и больших электроустановок. В некоторых случаях могут быть применены модули с другим количеством входов-выходов из соображений экономии средств, пространства в электрошкафу и т.д.
Надо помнить, что у некоторых ПЛК обязательным может быть наличие карты памяти в процессорном модуле. Некоторым контроллерам также необходим "завершающий" модуль, который устанавливается крайним правым в корзине для "закрытия" внутренней шины.

RS-триггер. Как он работает и с чем его едят.

Добавлено: 17 ноя 2012, 09:41
Михайло
3) RS-триггер. Как он работает и с чем его едят?
RS-триггер - это элемент для запоминания каких-то кратковременных событий. По грубой оценке в 70% применений RS-триггера в автоматизации запоминается нажатие некоторой пусковой кнопки. Различают RS-триггеры с преимуществом сброса и с преимуществом установки:

RS-триггер с преимуществом сброса
RS-триггер с преимуществом установки
[/size]
В автоматизации гораздо чаще применяют RS-триггеры с преимуществом сброса. Связано это с безопасностью: активное состояние (логическая единица) на выходе триггера, как правило, инициирует некоторое опасное движение, действие. Состояние логического нуля условно считается безопасным, все движения прекращаются, клапана закрываются и т.д.

Временная диаграмма RS-триггера с преимуществом сброса
Временная диаграмма RS-триггера с преимуществом установки
[/size]

В зависимости от среды разработки можно реализовать RS-триггер на языке программирования LD (Ladder diagram) любым из следующих способов:

RS-триггер с преимуществом сброса (реализация на языке LD).gif
[/size]

RS-триггер с преимуществом установки (реализация на языке LD).gif
[/size]
Рисунок "а" - классический RS-триггер;
Рисунок "б" - RS-триггер с разделенными катушками сброса и установки выхода. Имеет значение порядок расположения цепочек этих катушек в программе, последняя катушка имеет преимущество;
Рисунок "в" - RS-триггер, выполненный на стандартных элементах языка LD (НО-контакт, НЗ-контакт и катушка) без использования специальных команд.

Эффект памяти триггера возникает благодаря внутренней обратной связи, идущей от выхода к входу элемента (см. схему на элементах И, ИЛИ, НЕ). Обратная связь также имеется в реализациях RS-триггера на языке LD, когда контакт реле участвует в "самопитании" катушки (см. рисунки "в").

P.S. В старых омроновских контроллерах я сталкивался с командой RS-триггера с отсутствием приоритета, то есть при наличии на обоих входах логическое единицы выходное значение триггера сохраняет свое значение (не изменяется).

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 17 ноя 2012, 13:04
Михайло
4) Какой уровень сигнала лучше выбрать для активного состояния?
При проектировании схем нередко встает вопрос о том, какой уровень напряжения должен соответствовать активному состоянию. Очень часто полагают, что логическая единица (высокое напряжение) соответствует активному состоянию (кнопка нажата, двигатель включен, путевой выключатель нажат и т.д.). В принципе любой уровень сигнала можно инвертировать, то есть считать, что логический нуль соответствует состояние "включено", соответственно логическая единица - "выключено" и таким же образом автоматизировать технологический процесс и все будет работать.
Все же, правильно используя эту возможность выбора, можно повысить безопасность технологического процесса. Резерв для повышения безопасности кроется в особенностях неполадок в электрических цепях. Дело в том, что вероятность случайного появления низкого уровень напряжения (0 В, минус, ноль) в некоторой цепи из-за различных неполадок выше вероятности случайного появления там высокого напряжения (+24 В, плюс, ~220 В). Низкий уровень напряжения появляется из-за обрыва провода/кабеля в цепи сигнала и исчезновения питания. Эти виды неисправностей более вероятны, чем пробой изоляции и попадание высокого напряжения в цепь сигнала. Между тем имеются исключения: пробой полупроводниковых устройств намного вероятнее, чем пробой в механическом контакте и для таких устройств становится неясным соотношение неисправностей типа "обрыв" и "пробой".
В следствие описанных выше неисправностей технологический процесс может перейти в опасное состояние, и персоналу могут быть нанесены травмы, в том числе летальные, а также может быть разрушено оборудование, нанесен вред экологии (последнее - новая модная фишка от экспертов по безопасности :) ). Простой пример: один из двух проводов, который подключается к некоторой кнопке, отваливается, и после этого технологический процесс становится независимым от оператора...

Для снижения вероятности нештатной ситуации необходимо выбрать активный уровень напряжения так, чтобы при неисправности система автоматически перешла в безопасное состояние.
Все сигналы делятся на:
- пусковые (разрешающие, переводящие в опасное состояние),
- стоповые (запрещающие, переводящие в безопасное состояние).
К первым относятся обычно входные сигналы от кнопок "Пуск", сигналы типа "Готовность", "Нет аварии", выходные сигналы включения двигателя, нормально закрытого гидро- или пневмо- клапана; ко вторым относятся сигналы от кнопок "Стоп", путевых выключателей крайнего положения, сигналы типа "Нет готовности", "Авария".
1) При активном состоянии разрешающие сигналы должны иметь высокий уровень сигнала, поэтому у кнопки "Пуск" всегда используют нормально открытый контакт, также нормально открытые контакты используются для подачи напряжения на двигатели, клапана.
2) При активном состоянии запрещающие сигналы должны иметь низкий уровень сигнала, поэтому у кнопки "Стоп" и путевых выключателей крайнего положения всегда используют нормально закрытый контакт, сигнал "Авария" должен в случае аварии иметь низкий уровень (0 В).
3) Иногда сигналы являются гибридными, то есть участвуют в запуске одних механизмов и одновременно в остановке других механизмов. Примером может быть переключатель режимов типа "Автоматический - Ручной". Такие гибридные сигналы должны дублироваться, один из сигналов должен иметь высокое напряжение активного состояния, а другой - низкое напряжение. Первый сигнал должен использоваться как пусковой сигнал, а второй - как стоповый.

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

Итак, задача повышения безопасности сводится к следующему:
1. Определение опасных и безопасных состояний
2. Определение типа сигнала (переводящий в опасное состояние, переводящий в безопасное состояние или гибридный)
3. Выбор уровня напряжения для активного состояния
4. Выбор типа контакта

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 20 ноя 2012, 19:33
Михайло
5) Как составлять цепочки языка программирования LD?

Язык LD (Ladder diagram) является графическим и его нотация очень похожа на релейно-контакторные схемы.
Силовая шина, НО-контакт и катушка.gif
Вертикальная силовая шина находится под напряжением, катушка окажется под напряжением и соответственно включится, если контакт в ее цепи замкнется. На рисунке выше катушка выхода Q1 включается одновременно с замыканием контакта входа I1.
Q1 = I1
LD_НЗ-контакт.gif
Здесь наоборот: катушка Q1 включается, когда на входе I1 присутствует логический нуль и выключается при логической единице на этом же входе.
Q1 = NOT (I1)
LD_последовательное соединение.gif
При последовательном соединении контактов для возбуждения катушки необходимо замыкание одновременно обоих контактов.
Q1 = I1 AND I2
LD_параллельное соединение.gif
При параллельном соединении контактов для возбуждения катушки необходимо замыкание хотя бы одного из контактов.
Q1 = I1 OR I2
LD_пример посложнее.gif
Путем комплексных соединений нормально-открытых и нормально-закрытых контактов можно написать произвольное логическое уравнение.
Q1 = ((I1 AND I2) OR I3) AND NOT (I4)

Реализация RS-триггеров рассматривалась в вопросе и ответе "RS-триггер. Как он работает и с чем его едят?"

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 21 ноя 2012, 19:19
Михайло
Поправил вопрос и ответ №3. Расширил определения RS-триггера на языке LD.

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 24 ноя 2012, 16:55
Михайло
6) Как применять закон двойного отрицания и правила де Моргана при программировании ПЛК?
Иногда при программировании встречаются трудности, которые непросто преодолеть быстро. На помощь приходит закон двойного отрицания:
Изображение
и правила де Моргана
Изображение
Изображение

Запоминаются эти правила легко:
1. отрицание уничтожает отрицание
2. отрицание дизъюнкции равно конъюнкции отрицаний,
3. отрицание конъюнкции равно дизъюнкции отрицаний.
Перепутать и забыть правила невозможно!

Теперь закон двойного отрицания в графическом варианте:
Закон двойного отрицания.gif
Законы де Моргана:
Отрицание конъюнкции.gif
Отрицание дизъюнкции.gif
И теперь сложный вариант схемы, в котором не однократно применяются эти элементарные преобразования:
Сложный пример.gif

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 16 дек 2012, 09:46
Михайло
7) Как работают стандартные таймеры языков МЭК 61131-3?

Таймеры - это программные реализации устройств, отсчитывающих время от некоторого события. Таким событием считается фронт или спад дискретного сигнала, который поступает на вход таймера.
К стандартным таймерам относятся три вида таймеров: TON (on-delay, задержка на включение), TOF (off-delay, задержка на отключение) и TP (pulse, импульс).

Таймер TON - самый часто используемый, он включает свой выход с некоторой задержкой относительно фронта входа и отключается вместе с входным сигналом.
Временные диаграммы таймера TON.gif
Таймер TOF используется чуть реже, он включает свой выход включается вместе с входным сигналом и отключается с некоторой задержкой относительно спада входа.
Временные диаграммы таймера TOF.gif
Таймер TP используется еще реже, он выдает на выходе импульс определенной длительности по фронту входного сигнала.
Временные диаграммы таймера TP.gif
Существуют также нестандартные таймеры, например, TONR - разновидность таймера TON, который отключает свой выход не вместе с входным сигналом, а по сигналу от дополнительного входа сброса.

Величина ET (Elapsed Time, истекшее время) необязательна для использования и в некоторых реализациях языков МЭК этот выход таймера отсутствует.

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 19 дек 2012, 06:58
Михайло
8) Как работают стандартные счетчики языков МЭК 61131-3?

Счетчики - это программные реализации устройств, ведущих счет импульсов или циклов. С их помощью можно организовать циклы, аналогичные циклам for...next, while...do, repeat.

К стандартным счетчикам относятся счетчик вверх CTU, счетчик вниз CTD и реверсивный счетчик CTUD.

Счетчик вверх ведет счет от нуля до некоторой величины PV (Preset Value):
Счетчик вверх (up-counter).gif
Счетчик вниз ведет счет в обратном направлении от величины PV до нуля:
Счетчик вниз (down-counter).gif
Переменная CV (Counter Value) может не использоваться в программе.

Реверсивный счетчик является комбинацией счетчиков вверх и вниз.
Реверсивный счетчик (up-down-counter).gif
При этом есть несколько особенностей:
1. При одновременной активации входов CU и CD значение CV не меняется.
2. Выход QU включается при CV>=PV; выход QD включается при CV<=0.
3. Команда R обнуляет CV; команда LD загружает в переменную CV значение PV.

Счетчики могут работать со следующими целочисленными типами: INT, DINT, UDINT, LINT, ULINT.

При стандартном использовании счетчики считают количество циклов. При использовании функций детектора фронта и детектора спада счетчик могут считать количество импульсов.

Re: 1000 вопросов и ответов по ПЛК

Добавлено: 19 дек 2012, 07:27
Михайло
9) Как работают детектор фронта и детектор спада в языках МЭК 61131-3?

Детектор фронта R_TRIG (rising edge detector) определяет изменение значения входной дискретной величины с логического нуля на логическую единицу и включает свой выход. Детектор спада F_TRIG (falling edge detector), наоборот, определяет изменение значения входной дискретной величины с логической единицы на логический нуль и включает свой выход.
Детектор фронта и детектор спада.gif
Работают детекторы просто: они запоминают значение входной величины за предыдущий цикл программы, а затем сравнивают с текущим значением этой же величины.
Алгоритм для детектора фронта: Q[n] := CLK[n] AND NOT CLK[n-1]
Алгоритм для детектора спада: Q[n] := NOT CLK[n] AND CLK[n-1], где n - порядковый номер цикла программы.
Отсюда следует, что ПЛК необходимо запоминать значение предыдущего цикла CLK[n-1] в некоторой ячейке памяти. Некоторые среды разработки ПО для контроллеров требуют указать в настройках детектора фронта или спада эту ячейку памяти вручную. При этом нужно понимать, что для правильной работы детектора эти ячейки памяти при выполнении программы не должны изменяться другими командами, а также для разных детекторов нужно применять разные ячейки памяти.

В некоторых средах разработки детекторы могут называться как positive edge detector и negative edge detector.