1) Что такое "программируемый логический контроллер" (ПЛК)?
Programmable logic controller (PLC) - устройство, применяемое в промышленности для автоматизации любых электроустановок в производстве: станков, конвейеров, подъемников, прокатных станов, сварочных линий, испытательных стендов и т.д. ПЛК является базовым "строительным" элементом для автоматизированных систем управления технологическими процессами (АСУТП).
ПЛК принимает сигналы от различных датчиков и по определенной программе выдает команды на исполнительные механизмы. ПЛК обеспечивает широкий выбор типов входных и выходных сигналов. Это достигается благодаря модульной конструкции: ПЛК может быть собран из определенного ассортимента взаимосовместимых модулей, которые наилучшим образом подходят для автоматизации конкретной задачи автоматизации.
Внешний вид контроллера 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 и т.д. Некоторые производители предоставляют соответствующее ПО бесплатно.
1000 вопросов и ответов по ПЛК
1000 вопросов и ответов по ПЛК
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
2) Какие модули для ПЛК мне лучше выбрать?
Любой ПЛК должен обязательно включать в себя один центральный процессор (CPU), этот модуль выполняет все логические и арифметические операции, в его энергонезависимой памяти хранится пользовательская программа. Обычно CPU имеет на своем борту несколько дискретных входов и выходов, а также один или несколько сетевых интерфейсов. Процессорный модуль самодостаточен, он может работать без дополнительных модулей расширения.
Модули расширения ПЛК располагаются вплотную в ряд, бок-о-бок: слева - процессорный модуль, справа - модули ввода дискретных или аналоговых сигналов, модули вывода дискретных или аналоговых сигналов, коммуникационные модули и др. Каждый модуль, в том числе процессорный, имеет на своей правом боку интерфейс внутренней шины ПЛК, к которому с помощью боковых ламелей, объединительных плат или кабелей с разъемами могут подключаться соседние модули. Шина обеспечивает быстрый обмен информацией между CPU и модулями расширения, а также питание электроники модулей расширения от питания процессорного модуля.
В технических характеристиках процессорного модуля указывается максимальное количество модулей расширения, которое может быть подключено. В случае небольшого различия в стоимости различных CPU рекомендуется выбирать более "мощный" процессорный модуль, чем необходимо для текущей задачи автоматизации. Это позволит в дальнейшем без проблем расширить систему управления при модернизации, а также позволит ограничить ассортимент применяемых модулей в ряде задач автоматизации.
Крайне рекомендуется CPU брать с питанием 24 В постоянного тока. Это напряжение можно взять от стандартного стабилизированного блока питания. CPU с питанием ~220 В обычно применяются в бытовых или лабораторных условиях, когда напряжение в сети не "прыгает" сильно.
Аналогичные соображения делаются при выборе модулей расширения. Наиболее удобными являются модули с 16-ю дискретными входами и модули с 16-ю дискретными выходами. Такие модули пригодны для автоматизации как простых, так и больших электроустановок. В некоторых случаях могут быть применены модули с другим количеством входов-выходов из соображений экономии средств, пространства в электрошкафу и т.д.
Надо помнить, что у некоторых ПЛК обязательным может быть наличие карты памяти в процессорном модуле. Некоторым контроллерам также необходим "завершающий" модуль, который устанавливается крайним правым в корзине для "закрытия" внутренней шины.
Любой ПЛК должен обязательно включать в себя один центральный процессор (CPU), этот модуль выполняет все логические и арифметические операции, в его энергонезависимой памяти хранится пользовательская программа. Обычно CPU имеет на своем борту несколько дискретных входов и выходов, а также один или несколько сетевых интерфейсов. Процессорный модуль самодостаточен, он может работать без дополнительных модулей расширения.
Модули расширения ПЛК располагаются вплотную в ряд, бок-о-бок: слева - процессорный модуль, справа - модули ввода дискретных или аналоговых сигналов, модули вывода дискретных или аналоговых сигналов, коммуникационные модули и др. Каждый модуль, в том числе процессорный, имеет на своей правом боку интерфейс внутренней шины ПЛК, к которому с помощью боковых ламелей, объединительных плат или кабелей с разъемами могут подключаться соседние модули. Шина обеспечивает быстрый обмен информацией между CPU и модулями расширения, а также питание электроники модулей расширения от питания процессорного модуля.
В технических характеристиках процессорного модуля указывается максимальное количество модулей расширения, которое может быть подключено. В случае небольшого различия в стоимости различных CPU рекомендуется выбирать более "мощный" процессорный модуль, чем необходимо для текущей задачи автоматизации. Это позволит в дальнейшем без проблем расширить систему управления при модернизации, а также позволит ограничить ассортимент применяемых модулей в ряде задач автоматизации.
Крайне рекомендуется CPU брать с питанием 24 В постоянного тока. Это напряжение можно взять от стандартного стабилизированного блока питания. CPU с питанием ~220 В обычно применяются в бытовых или лабораторных условиях, когда напряжение в сети не "прыгает" сильно.
Аналогичные соображения делаются при выборе модулей расширения. Наиболее удобными являются модули с 16-ю дискретными входами и модули с 16-ю дискретными выходами. Такие модули пригодны для автоматизации как простых, так и больших электроустановок. В некоторых случаях могут быть применены модули с другим количеством входов-выходов из соображений экономии средств, пространства в электрошкафу и т.д.
Надо помнить, что у некоторых ПЛК обязательным может быть наличие карты памяти в процессорном модуле. Некоторым контроллерам также необходим "завершающий" модуль, который устанавливается крайним правым в корзине для "закрытия" внутренней шины.
RS-триггер. Как он работает и с чем его едят.
3) RS-триггер. Как он работает и с чем его едят?
RS-триггер - это элемент для запоминания каких-то кратковременных событий. По грубой оценке в 70% применений RS-триггера в автоматизации запоминается нажатие некоторой пусковой кнопки. Различают RS-триггеры с преимуществом сброса и с преимуществом установки:
[/size]
В автоматизации гораздо чаще применяют RS-триггеры с преимуществом сброса. Связано это с безопасностью: активное состояние (логическая единица) на выходе триггера, как правило, инициирует некоторое опасное движение, действие. Состояние логического нуля условно считается безопасным, все движения прекращаются, клапана закрываются и т.д.
[/size]
В зависимости от среды разработки можно реализовать RS-триггер на языке программирования LD (Ladder diagram) любым из следующих способов:
[/size]
[/size]
Рисунок "а" - классический RS-триггер;
Рисунок "б" - RS-триггер с разделенными катушками сброса и установки выхода. Имеет значение порядок расположения цепочек этих катушек в программе, последняя катушка имеет преимущество;
Рисунок "в" - RS-триггер, выполненный на стандартных элементах языка LD (НО-контакт, НЗ-контакт и катушка) без использования специальных команд.
Эффект памяти триггера возникает благодаря внутренней обратной связи, идущей от выхода к входу элемента (см. схему на элементах И, ИЛИ, НЕ). Обратная связь также имеется в реализациях RS-триггера на языке LD, когда контакт реле участвует в "самопитании" катушки (см. рисунки "в").
P.S. В старых омроновских контроллерах я сталкивался с командой RS-триггера с отсутствием приоритета, то есть при наличии на обоих входах логическое единицы выходное значение триггера сохраняет свое значение (не изменяется).
RS-триггер - это элемент для запоминания каких-то кратковременных событий. По грубой оценке в 70% применений RS-триггера в автоматизации запоминается нажатие некоторой пусковой кнопки. Различают RS-триггеры с преимуществом сброса и с преимуществом установки:
[/size]
В автоматизации гораздо чаще применяют RS-триггеры с преимуществом сброса. Связано это с безопасностью: активное состояние (логическая единица) на выходе триггера, как правило, инициирует некоторое опасное движение, действие. Состояние логического нуля условно считается безопасным, все движения прекращаются, клапана закрываются и т.д.
[/size]
В зависимости от среды разработки можно реализовать RS-триггер на языке программирования LD (Ladder diagram) любым из следующих способов:
[/size]
[/size]
Рисунок "а" - классический RS-триггер;
Рисунок "б" - RS-триггер с разделенными катушками сброса и установки выхода. Имеет значение порядок расположения цепочек этих катушек в программе, последняя катушка имеет преимущество;
Рисунок "в" - RS-триггер, выполненный на стандартных элементах языка LD (НО-контакт, НЗ-контакт и катушка) без использования специальных команд.
Эффект памяти триггера возникает благодаря внутренней обратной связи, идущей от выхода к входу элемента (см. схему на элементах И, ИЛИ, НЕ). Обратная связь также имеется в реализациях RS-триггера на языке LD, когда контакт реле участвует в "самопитании" катушки (см. рисунки "в").
P.S. В старых омроновских контроллерах я сталкивался с командой RS-триггера с отсутствием приоритета, то есть при наличии на обоих входах логическое единицы выходное значение триггера сохраняет свое значение (не изменяется).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
4) Какой уровень сигнала лучше выбрать для активного состояния?
При проектировании схем нередко встает вопрос о том, какой уровень напряжения должен соответствовать активному состоянию. Очень часто полагают, что логическая единица (высокое напряжение) соответствует активному состоянию (кнопка нажата, двигатель включен, путевой выключатель нажат и т.д.). В принципе любой уровень сигнала можно инвертировать, то есть считать, что логический нуль соответствует состояние "включено", соответственно логическая единица - "выключено" и таким же образом автоматизировать технологический процесс и все будет работать.
Все же, правильно используя эту возможность выбора, можно повысить безопасность технологического процесса. Резерв для повышения безопасности кроется в особенностях неполадок в электрических цепях. Дело в том, что вероятность случайного появления низкого уровень напряжения (0 В, минус, ноль) в некоторой цепи из-за различных неполадок выше вероятности случайного появления там высокого напряжения (+24 В, плюс, ~220 В). Низкий уровень напряжения появляется из-за обрыва провода/кабеля в цепи сигнала и исчезновения питания. Эти виды неисправностей более вероятны, чем пробой изоляции и попадание высокого напряжения в цепь сигнала. Между тем имеются исключения: пробой полупроводниковых устройств намного вероятнее, чем пробой в механическом контакте и для таких устройств становится неясным соотношение неисправностей типа "обрыв" и "пробой".
В следствие описанных выше неисправностей технологический процесс может перейти в опасное состояние, и персоналу могут быть нанесены травмы, в том числе летальные, а также может быть разрушено оборудование, нанесен вред экологии (последнее - новая модная фишка от экспертов по безопасности ). Простой пример: один из двух проводов, который подключается к некоторой кнопке, отваливается, и после этого технологический процесс становится независимым от оператора...
Для снижения вероятности нештатной ситуации необходимо выбрать активный уровень напряжения так, чтобы при неисправности система автоматически перешла в безопасное состояние.
Все сигналы делятся на:
- пусковые (разрешающие, переводящие в опасное состояние),
- стоповые (запрещающие, переводящие в безопасное состояние).
К первым относятся обычно входные сигналы от кнопок "Пуск", сигналы типа "Готовность", "Нет аварии", выходные сигналы включения двигателя, нормально закрытого гидро- или пневмо- клапана; ко вторым относятся сигналы от кнопок "Стоп", путевых выключателей крайнего положения, сигналы типа "Нет готовности", "Авария".
1) При активном состоянии разрешающие сигналы должны иметь высокий уровень сигнала, поэтому у кнопки "Пуск" всегда используют нормально открытый контакт, также нормально открытые контакты используются для подачи напряжения на двигатели, клапана.
2) При активном состоянии запрещающие сигналы должны иметь низкий уровень сигнала, поэтому у кнопки "Стоп" и путевых выключателей крайнего положения всегда используют нормально закрытый контакт, сигнал "Авария" должен в случае аварии иметь низкий уровень (0 В).
3) Иногда сигналы являются гибридными, то есть участвуют в запуске одних механизмов и одновременно в остановке других механизмов. Примером может быть переключатель режимов типа "Автоматический - Ручной". Такие гибридные сигналы должны дублироваться, один из сигналов должен иметь высокое напряжение активного состояния, а другой - низкое напряжение. Первый сигнал должен использоваться как пусковой сигнал, а второй - как стоповый.
При всем этом нужно понимать, что не всегда вращающийся двигатель или открытый клапан - это опасное состояние технологического процесса: двигатель может работать на жизнеобеспечение, а открытый клапан может сбрасывать опасное давление.
Итак, задача повышения безопасности сводится к следующему:
1. Определение опасных и безопасных состояний
2. Определение типа сигнала (переводящий в опасное состояние, переводящий в безопасное состояние или гибридный)
3. Выбор уровня напряжения для активного состояния
4. Выбор типа контакта
При проектировании схем нередко встает вопрос о том, какой уровень напряжения должен соответствовать активному состоянию. Очень часто полагают, что логическая единица (высокое напряжение) соответствует активному состоянию (кнопка нажата, двигатель включен, путевой выключатель нажат и т.д.). В принципе любой уровень сигнала можно инвертировать, то есть считать, что логический нуль соответствует состояние "включено", соответственно логическая единица - "выключено" и таким же образом автоматизировать технологический процесс и все будет работать.
Все же, правильно используя эту возможность выбора, можно повысить безопасность технологического процесса. Резерв для повышения безопасности кроется в особенностях неполадок в электрических цепях. Дело в том, что вероятность случайного появления низкого уровень напряжения (0 В, минус, ноль) в некоторой цепи из-за различных неполадок выше вероятности случайного появления там высокого напряжения (+24 В, плюс, ~220 В). Низкий уровень напряжения появляется из-за обрыва провода/кабеля в цепи сигнала и исчезновения питания. Эти виды неисправностей более вероятны, чем пробой изоляции и попадание высокого напряжения в цепь сигнала. Между тем имеются исключения: пробой полупроводниковых устройств намного вероятнее, чем пробой в механическом контакте и для таких устройств становится неясным соотношение неисправностей типа "обрыв" и "пробой".
В следствие описанных выше неисправностей технологический процесс может перейти в опасное состояние, и персоналу могут быть нанесены травмы, в том числе летальные, а также может быть разрушено оборудование, нанесен вред экологии (последнее - новая модная фишка от экспертов по безопасности ). Простой пример: один из двух проводов, который подключается к некоторой кнопке, отваливается, и после этого технологический процесс становится независимым от оператора...
Для снижения вероятности нештатной ситуации необходимо выбрать активный уровень напряжения так, чтобы при неисправности система автоматически перешла в безопасное состояние.
Все сигналы делятся на:
- пусковые (разрешающие, переводящие в опасное состояние),
- стоповые (запрещающие, переводящие в безопасное состояние).
К первым относятся обычно входные сигналы от кнопок "Пуск", сигналы типа "Готовность", "Нет аварии", выходные сигналы включения двигателя, нормально закрытого гидро- или пневмо- клапана; ко вторым относятся сигналы от кнопок "Стоп", путевых выключателей крайнего положения, сигналы типа "Нет готовности", "Авария".
1) При активном состоянии разрешающие сигналы должны иметь высокий уровень сигнала, поэтому у кнопки "Пуск" всегда используют нормально открытый контакт, также нормально открытые контакты используются для подачи напряжения на двигатели, клапана.
2) При активном состоянии запрещающие сигналы должны иметь низкий уровень сигнала, поэтому у кнопки "Стоп" и путевых выключателей крайнего положения всегда используют нормально закрытый контакт, сигнал "Авария" должен в случае аварии иметь низкий уровень (0 В).
3) Иногда сигналы являются гибридными, то есть участвуют в запуске одних механизмов и одновременно в остановке других механизмов. Примером может быть переключатель режимов типа "Автоматический - Ручной". Такие гибридные сигналы должны дублироваться, один из сигналов должен иметь высокое напряжение активного состояния, а другой - низкое напряжение. Первый сигнал должен использоваться как пусковой сигнал, а второй - как стоповый.
При всем этом нужно понимать, что не всегда вращающийся двигатель или открытый клапан - это опасное состояние технологического процесса: двигатель может работать на жизнеобеспечение, а открытый клапан может сбрасывать опасное давление.
Итак, задача повышения безопасности сводится к следующему:
1. Определение опасных и безопасных состояний
2. Определение типа сигнала (переводящий в опасное состояние, переводящий в безопасное состояние или гибридный)
3. Выбор уровня напряжения для активного состояния
4. Выбор типа контакта
Re: 1000 вопросов и ответов по ПЛК
5) Как составлять цепочки языка программирования LD?
Язык LD (Ladder diagram) является графическим и его нотация очень похожа на релейно-контакторные схемы.
Вертикальная силовая шина находится под напряжением, катушка окажется под напряжением и соответственно включится, если контакт в ее цепи замкнется. На рисунке выше катушка выхода Q1 включается одновременно с замыканием контакта входа I1.
Q1 = I1
Здесь наоборот: катушка Q1 включается, когда на входе I1 присутствует логический нуль и выключается при логической единице на этом же входе.
Q1 = NOT (I1)
При последовательном соединении контактов для возбуждения катушки необходимо замыкание одновременно обоих контактов.
Q1 = I1 AND I2
При параллельном соединении контактов для возбуждения катушки необходимо замыкание хотя бы одного из контактов.
Q1 = I1 OR I2
Путем комплексных соединений нормально-открытых и нормально-закрытых контактов можно написать произвольное логическое уравнение.
Q1 = ((I1 AND I2) OR I3) AND NOT (I4)
Реализация RS-триггеров рассматривалась в вопросе и ответе "RS-триггер. Как он работает и с чем его едят?"
Язык LD (Ladder diagram) является графическим и его нотация очень похожа на релейно-контакторные схемы.
Вертикальная силовая шина находится под напряжением, катушка окажется под напряжением и соответственно включится, если контакт в ее цепи замкнется. На рисунке выше катушка выхода Q1 включается одновременно с замыканием контакта входа I1.
Q1 = I1
Здесь наоборот: катушка Q1 включается, когда на входе I1 присутствует логический нуль и выключается при логической единице на этом же входе.
Q1 = NOT (I1)
При последовательном соединении контактов для возбуждения катушки необходимо замыкание одновременно обоих контактов.
Q1 = I1 AND I2
При параллельном соединении контактов для возбуждения катушки необходимо замыкание хотя бы одного из контактов.
Q1 = I1 OR I2
Путем комплексных соединений нормально-открытых и нормально-закрытых контактов можно написать произвольное логическое уравнение.
Q1 = ((I1 AND I2) OR I3) AND NOT (I4)
Реализация RS-триггеров рассматривалась в вопросе и ответе "RS-триггер. Как он работает и с чем его едят?"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
Поправил вопрос и ответ №3. Расширил определения RS-триггера на языке LD.
Re: 1000 вопросов и ответов по ПЛК
6) Как применять закон двойного отрицания и правила де Моргана при программировании ПЛК?
Иногда при программировании встречаются трудности, которые непросто преодолеть быстро. На помощь приходит закон двойного отрицания:
и правила де Моргана
Запоминаются эти правила легко:
1. отрицание уничтожает отрицание
2. отрицание дизъюнкции равно конъюнкции отрицаний,
3. отрицание конъюнкции равно дизъюнкции отрицаний.
Перепутать и забыть правила невозможно!
Теперь закон двойного отрицания в графическом варианте: Законы де Моргана: И теперь сложный вариант схемы, в котором не однократно применяются эти элементарные преобразования:
Иногда при программировании встречаются трудности, которые непросто преодолеть быстро. На помощь приходит закон двойного отрицания:
и правила де Моргана
Запоминаются эти правила легко:
1. отрицание уничтожает отрицание
2. отрицание дизъюнкции равно конъюнкции отрицаний,
3. отрицание конъюнкции равно дизъюнкции отрицаний.
Перепутать и забыть правила невозможно!
Теперь закон двойного отрицания в графическом варианте: Законы де Моргана: И теперь сложный вариант схемы, в котором не однократно применяются эти элементарные преобразования:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
7) Как работают стандартные таймеры языков МЭК 61131-3?
Таймеры - это программные реализации устройств, отсчитывающих время от некоторого события. Таким событием считается фронт или спад дискретного сигнала, который поступает на вход таймера.
К стандартным таймерам относятся три вида таймеров: TON (on-delay, задержка на включение), TOF (off-delay, задержка на отключение) и TP (pulse, импульс).
Таймер TON - самый часто используемый, он включает свой выход с некоторой задержкой относительно фронта входа и отключается вместе с входным сигналом. Таймер TOF используется чуть реже, он включает свой выход включается вместе с входным сигналом и отключается с некоторой задержкой относительно спада входа. Таймер TP используется еще реже, он выдает на выходе импульс определенной длительности по фронту входного сигнала. Существуют также нестандартные таймеры, например, TONR - разновидность таймера TON, который отключает свой выход не вместе с входным сигналом, а по сигналу от дополнительного входа сброса.
Величина ET (Elapsed Time, истекшее время) необязательна для использования и в некоторых реализациях языков МЭК этот выход таймера отсутствует.
Таймеры - это программные реализации устройств, отсчитывающих время от некоторого события. Таким событием считается фронт или спад дискретного сигнала, который поступает на вход таймера.
К стандартным таймерам относятся три вида таймеров: TON (on-delay, задержка на включение), TOF (off-delay, задержка на отключение) и TP (pulse, импульс).
Таймер TON - самый часто используемый, он включает свой выход с некоторой задержкой относительно фронта входа и отключается вместе с входным сигналом. Таймер TOF используется чуть реже, он включает свой выход включается вместе с входным сигналом и отключается с некоторой задержкой относительно спада входа. Таймер TP используется еще реже, он выдает на выходе импульс определенной длительности по фронту входного сигнала. Существуют также нестандартные таймеры, например, TONR - разновидность таймера TON, который отключает свой выход не вместе с входным сигналом, а по сигналу от дополнительного входа сброса.
Величина ET (Elapsed Time, истекшее время) необязательна для использования и в некоторых реализациях языков МЭК этот выход таймера отсутствует.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
Как работают стандартные счетчики языков МЭК 61131-3?
Счетчики - это программные реализации устройств, ведущих счет импульсов или циклов. С их помощью можно организовать циклы, аналогичные циклам for...next, while...do, repeat.
К стандартным счетчикам относятся счетчик вверх CTU, счетчик вниз CTD и реверсивный счетчик CTUD.
Счетчик вверх ведет счет от нуля до некоторой величины PV (Preset Value): Счетчик вниз ведет счет в обратном направлении от величины PV до нуля: Переменная CV (Counter Value) может не использоваться в программе.
Реверсивный счетчик является комбинацией счетчиков вверх и вниз. При этом есть несколько особенностей:
1. При одновременной активации входов CU и CD значение CV не меняется.
2. Выход QU включается при CV>=PV; выход QD включается при CV<=0.
3. Команда R обнуляет CV; команда LD загружает в переменную CV значение PV.
Счетчики могут работать со следующими целочисленными типами: INT, DINT, UDINT, LINT, ULINT.
При стандартном использовании счетчики считают количество циклов. При использовании функций детектора фронта и детектора спада счетчик могут считать количество импульсов.
Счетчики - это программные реализации устройств, ведущих счет импульсов или циклов. С их помощью можно организовать циклы, аналогичные циклам for...next, while...do, repeat.
К стандартным счетчикам относятся счетчик вверх CTU, счетчик вниз CTD и реверсивный счетчик CTUD.
Счетчик вверх ведет счет от нуля до некоторой величины PV (Preset Value): Счетчик вниз ведет счет в обратном направлении от величины PV до нуля: Переменная CV (Counter Value) может не использоваться в программе.
Реверсивный счетчик является комбинацией счетчиков вверх и вниз. При этом есть несколько особенностей:
1. При одновременной активации входов CU и CD значение CV не меняется.
2. Выход QU включается при CV>=PV; выход QD включается при CV<=0.
3. Команда R обнуляет CV; команда LD загружает в переменную CV значение PV.
Счетчики могут работать со следующими целочисленными типами: INT, DINT, UDINT, LINT, ULINT.
При стандартном использовании счетчики считают количество циклов. При использовании функций детектора фронта и детектора спада счетчик могут считать количество импульсов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: 1000 вопросов и ответов по ПЛК
9) Как работают детектор фронта и детектор спада в языках МЭК 61131-3?
Детектор фронта R_TRIG (rising edge detector) определяет изменение значения входной дискретной величины с логического нуля на логическую единицу и включает свой выход. Детектор спада F_TRIG (falling edge detector), наоборот, определяет изменение значения входной дискретной величины с логической единицы на логический нуль и включает свой выход.
Работают детекторы просто: они запоминают значение входной величины за предыдущий цикл программы, а затем сравнивают с текущим значением этой же величины.
Алгоритм для детектора фронта: 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.
Детектор фронта R_TRIG (rising edge detector) определяет изменение значения входной дискретной величины с логического нуля на логическую единицу и включает свой выход. Детектор спада F_TRIG (falling edge detector), наоборот, определяет изменение значения входной дискретной величины с логической единицы на логический нуль и включает свой выход.
Работают детекторы просто: они запоминают значение входной величины за предыдущий цикл программы, а затем сравнивают с текущим значением этой же величины.
Алгоритм для детектора фронта: 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.
У вас нет необходимых прав для просмотра вложений в этом сообщении.