Что такое PLC ?

Что такое  PLC ?

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


ПЛК используются во многих приложениях «реального мира». Если есть производство, то с большой вероятностью там присутствует plc. Если вы занимаетесь обработкой, упаковкой, обработкой материалов, автоматической сборкой или другими процессами, вы, вероятно, уже используете их. Если вы этого не сделаете, вы тратите деньги и время. Практически любое приложение, требующее какого-либо контроля, нуждается в PLC.

Например, предположим, что при включении выключателя мы хотим включить соленоид в течение 5 секунд, а затем выключить его независимо от того, как долго включается переключатель. Мы можем сделать это с помощью простого внешнего таймера. Но что, если процесс включал 10 переключателей и соленоидов? Нам понадобится 10 внешних таймеров. Что делать, если процесс также должен был подсчитывать, сколько раз включалось индивидуальное включение переключателей? Нам нужно много внешних счетчиков.

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

Эта статья даст вам достаточно информации,для того, чтобы иметь возможность писать программы более сложные, чем описано выше. Мы рассмотрим то, что считается «топ-20» инструкций plc. Можно с уверенностью предположить, что с четким пониманием этих инструкций можно решить более 80% существующих задач.
Правильно, более 80%! Конечно, мы узнаем больше, чем просто эти инструкции, чтобы помочь вам решить почти ВСЕ ваши потенциальные задачи для ПЛК.



История ПЛК

В конце 1960-х годов появились первые ПЛК. Основной причиной появления такого устройства было устранение больших затрат, связанных с заменой сложных систем управления машиной на основе реле. Bedford Associates (Бедфорд, Массачусетс) предложила нечто вроде модульного цифрового контроллера (MODICON) крупному американскому автопроизводителю. Другие компании в то время предлагали компьютерные схемы, одна из которых была основана на PDP-8. MODICON 084 запустил первый в мире ПЛК в промышленное производство.

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

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

В середине 70-х доминирующие технологии ПЛК были на основе секвенсорных стационарных машин и процессоров намодульной основе. AMD 2901 и 2903 были довольно популярны в контроллерах Modicon и A-B. Обычным микропроцессорам не хватало сил для быстрого решения логики ПЛК во всех, кроме самых маленьких ПЛК. По мере развития обычных микропроцессоров на них строилось все больше и больше ПЛК. Однако даже сегодня некоторые из них все еще построены на 2903. (ref-A-B's PLC-3) Modicon еще не построил более быстрый PLC, чем их 984A / B / X, который был основан на 2901.

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

В 80-х годах была предпринята попытка стандартизации связи с протоколом автоматизации производства General Motors (MAP). Это было также время для уменьшения размера ПЛК и обеспечения их программным обеспечением, программирования с помощью символического программирования на персональных компьютерах, а не выделенных терминалов программирования или специальных программистов. Сегодня самый маленький в мире ПЛК - это размер одного управляющего реле !

В 90-е годы наблюдалось постепенное сокращение внедрения новых протоколов и модернизация физических слоев некоторых из наиболее популярных протоколов, которые сохранились в 1980-х годах. Последний стандарт (IEC 1131-3) попытался объединить языки программирования PLC по одному международному стандарту. Теперь у нас есть ПЛК, которые программируются в функциональных блок-схемах, списках инструкций, и структурированном тексте одновременно! ПК также используются для замены ПЛК в некоторых приложениях.


Устройство


ПЛК состоит главным образом из ЦП - центрального процессора, памяти и соответствующих схем для приема входных / выходных данных. Фактически мы можем считать ПЛК коробкой, полной сотен или тысяч отдельных реле, счетчиков, таймеров и мест хранения данных. Существуют ли эти счетчики, таймеры и т. Д.? Нет, они «физически» не существуют, а скорее имитируются и могут считаться програмными счетчиками, таймерами и т. д. Эти внутренние реле моделируются через битовые значения в регистрах. (подробнее об этом далее)

Части внутри

Что делает каждая часть?

INPUT RELAYS- (контакты) Они подключены к внешнему миру. Они физически существуют и получают сигналы от переключателей, датчиков и т. Д. Обычно они не являются реле, а скорее являются транзисторами.


ВНУТРЕННИЕ РЕЛЕ УТИЛИТЫ- (контакты) Они не получают сигналы от внешнего мира и физически не существуют. Они имитируют реле, и это то, что позволяет ПЛК заменить внешние реле. Существуют также специальные реле, предназначенные для выполнения только одной задачи. Некоторые из них всегда включены, а некоторые всегда отключены. Некоторые из них включены только один раз во время включения питания и обычно используются для инициализации данных, которые были сохранены.


СЧЕТЧИКИ - Это опять же физически не существующие элементы. Они имитируют счетчики, и их можно запрограммировать на подсчет импульсов. Обычно эти счетчики могут подсчитывать, вниз или и вверх и вниз. Поскольку они имитируются, они ограничены в скорости счета. Некоторые производители также включают высокоскоростные счетчики, которые основаны на физических счетчиках. Мы можем считать их физически существующими. В большинстве случаев эти счетчики могут подсчитывать, вниз или вверх и вниз.


ТАЙМЕРЫ. Они также физически не существуют. Они бывают разных видов. Наиболее распространенным типом является тип с задержкой. Другие включают задержка и хранение. Приращения варьируются от 1 мс до 1 с.


ВЫХОДНЫЕ РЕЛЕ - (катушки) Они подключены к внешнему миру. Они физически существуют и посылают сигналы включения / выключения соленоидам, лампам и т. Д. Они могут быть транзисторами, реле или симисторами в зависимости от выбранной модели.


ХРАНЕНИЕ ДАННЫХ. Обычно для хранения данных используют регистры. Они обычно используются в качестве временного хранилища для вычислений или манипуляции с данными. Их также можно обычно использовать для хранения данных при отключении питания от ПЛК. При включении питания они будут по-прежнему иметь такое же содержимое, как и до отключения питания. Очень удобно и необходимо !!




Работа ПЛК

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


Сканирование ПЛК

Шаг 1 - ПРОВЕРКА ВХОДНОГО СТАТУСА

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

Шаг 2 - ИСПОЛНИТЕЛЬНАЯ ПРОГРАММА.

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

Шаг 3 - ОБНОВЛЕНИЕ СОСОТОЯНИЯ ВЫХОДОВ

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

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








Время отклика

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

Если у вас есть время, чтобы отвести взгляд от этого текста, вы можете увидеть изображение на стене. Ваши глаза на самом деле видят картину до того, как ваш мозг говорит: «О, на стене есть фотография». В этом примере ваши глаза можно считать датчиком. Глаза подключены к входной цепи вашего мозга. Входная цепь вашего мозга занимает определенное количество времени, чтобы понять, что ваши глаза что-то видели. (Если вы пили алкоголь, это время ответа на вход было бы больше!) В конце концов ваш мозг осознает, что глаза что-то видели, и обрабатывает данные. Затем он посылает выходной сигнал в рот. Ваш рот получает эти данные и начинает отвечать на него. В конце концов ваш рот произносит слова «Это действительно уродливая картина!».

Обратите внимание, что в этом примере нам пришлось ответить на 3 вопроса:

INPUT - потребовалось определенное время, чтобы мозг заметил входной сигнал от глаз.

ИСПОЛНЕНИЕ - потребовалось определенное количество времени для обработки информации, полученной от глаз. Вспомните программу: Если глаза видят уродливое изображение, тогда выведите соответствующие слова в рот.

OUTPUT- Рот получает сигнал от мозга и в конечном итоге плюет (не каламбур) словами «Это действительно уродливая картина!».







Проблемы времени отклика

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




Проверка состояния вводов контроллера







На диаграмме вход 1 не отображается до сканирования 2. Это связано с тем, что когда вход 1 включен, сканирование 1 уже закончило просмотр входов.
Ввод 2 не отображается до сканирования 3. Это также связано с тем, что когда вход, включенный в сканирование 2, а ПЛК уже закончил просмотр входов.
Вход 3 никогда не виден. Это связано с тем, что когда сканирование 3 просмотрело входы, сигнал 3 еще не был включен. Он выключается, прежде чем сканирование 4 проверит входы. Поэтому сигнал 3 никогда не воспринимается plc.



минимальное время ввода




Чтобы этого избежать, мы говорим, что вход должен быть включен как минимум для 1 задержки на вход + время сканирования.

Если невозможно обеспечить такое долгое включенное состояние входа, тогда plc не увидит, что вход включен. Должен быть найден способ обойти это. На самом деле есть два способа.

Функция растяжения импульса.



Эта функция расширяет длину входного сигнала до тех пор, пока PLC не будет проверять входы во время следующего сканирования (т. Е. Растягивает длительность импульса).





функция растягивания импульса





Функция прерывания.


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



функция прерывания





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

Таким образом, максимальная задержка составляет 2 цикла сканирования - 1 время задержки ввода.


Maximum delay time





Реле


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

Мы можем думать о реле как электромагнитном переключателе. Подайте напряжение на катушку и создайте магнитное поле. Это магнитное поле втягивает контакты реле, заставляя их переключаться. Эти контакты можно считать коммутатором. Они позволяют ток течь между 2 точками, тем самым замыкая контур.

Рассмотрим следующий пример. Здесь мы просто включаем звонок (время обеда!) Всякий раз, когда выключатель замыкается. У нас есть 3 части в реальной схеме. Переключатель, реле и колокольчик. Всякий раз, когда выключатель замыкается, мы подаем ток в звонок, заставляя его звучать.



пример релейной схемы


Простая схема реле


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

Здесь мы используем реле постоянного тока для управления цепью переменного тока. Это удовольствие от реле! Когда переключатель разомкнут, ток не может течь через катушку реле. Однако, как только выключатель замыкается, ток течет через катушку, создавая магнитное поле. Это магнитное поле заставляет контакты реле замыкаться. Теперь переменный тока протекает через звонок, и мы слышим его. Время обеда!



Замена реле

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

Первый шаг.

Мы должны перевести все элементы, которые мы используем, в символы, которые понимает plc. PLC не понимает такие термины, как switch, relay, bell и т. д. Он предпочитает вход, выход, катушку, контакт и т. д. На самом деле неважно, каково фактическое устройство ввода или вывода. Он заботится только о том, что является его входом или выходом.
Сначала заменим батарею символом. Этот символ является общим для всех диаграмм лестниц. Мы рисуем так называемые шины. Они просто выглядят как две вертикальные полосы. По одной на каждой стороне диаграммы. Подумайте о том, что левая - как + напряжения питания, а правая - как заземленная. Подумайте о текущем (логическом) потоке как о левом и правом.

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


Contact symbol

контакты реле




Затем мы добавляем символы выходов. В этом примере мы используем один вывод (т. Е. Звонок). Мы добавляем выход, к символу которого будет физически подключен звонок, как показанно ниже. Этот символ используется как катушка реле.


Coil symbol

катушка реле





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

Второй шаг.


Мы должны сказать, где все находится. Другими словами, мы должны предоставить всем устройствам адрес.

Где коммутатор будет физически подключен к ПК ?

Как насчет звонка ?

Мы начинаем с пустой дорожной карты в городе ПЛК и даем каждого элементу адрес. Могли бы вы найти своих друзей, если бы не знали их адрес? Вы знаете, что они живут в одном городе, но в каком доме? В городе plc есть много домов (входы и выходы), но мы должны выяснить, кто там живет (какое устройство подключено и куда). Далее мы рассмотрим схему адресации. Производители plc каждый делает это по-своему !

Допустим, что наш вход будет называться «0000».

Выход будет называться «500».

Заключительный шаг.


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





Completed ladder diagram



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





Основные инструкции


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


Загрузка


Загрузка (LD) - нормально открытый контакт. Иногда его также называют проверкой if on (XIO) (как при проверке ввода, чтобы увидеть, включен ли онфизически ). Символ для инструкции загрузки показан ниже.


A load symbol


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



LoadBar



Инструкция LoaDBar является нормально замкнутым контактом. Иногда его также называют LoaDNot или проверяют, закрыт ли он. (XIC) (как при проверке ввода, чтобы увидеть, физически ли он закрыт). Символ для команды loadbar показан ниже.



Normally closed symbol



Этот символ используется, когда не требуется присутствия входного сигнала для включения символа. Когда физический вход выключен, мы можем сказать, что инструкция True. Мы рассматриваем вход для сигнала отключения. Если вход физически выключен, символ горит. Условие выключения также упоминается как состояние логики 0.

Этот символ обычно может использоваться для внутренних входов, внешних входов и иногда внешних выходных контактов. Помните еще раз, что внутренние реле физически не существуют. Они имитируются (программные) реле. Это полная противоположность инструкции Загрузка.
* ПРИМЕЧАНИЕ. В большинстве ПЛК эта инструкция (Load или Loadbar) ДОЛЖНА быть первым символом слева от лестницы.



Логическое состояние Load LoadBar
0 False True
1 True False

Выход



Инструкция Out иногда также называется инструкцией OutputEnergize. Выходная инструкция похожа на катушку реле. Ее символ выглядит так, как показано ниже.



Output symbol




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



Outbar



Команда Outbar иногда также называется инструкцией OutNot. Некоторые поставщики не имеют этой инструкции. Команда outbar похожа на нормально замкнутую катушку реле. Еe символ выглядит так, как показано ниже.



Normally closed output



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



Логическое состояние Out OutBar
0 False True
1 True False






Простой пример


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



A simple circuit




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




Circuit converted to ladder diagram




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




PLC регистры



Теперь мы рассмотрим предыдущий пример и сменим переключатель 2 (SW2) на нормально замкнутый символ (инструкция loadbar ). SW1 будет физически выключен, а SW2 будет физически включен. Лестничная диаграмма теперь выглядит так:




Completed ladder diagram




Обратите также внимание на то, что мы теперь передали каждому символу (или инструкции) адрес. Этот адрес выделяет определенную область хранения в файлах данных ПЛК, чтобы можно было сохранить статус команды (то есть true / false). Многие ПЛК используют 16 слотов или бит памяти. В приведенном выше примере мы используем два разных места хранения или регистры.




REGISTER 00
15141312111009080706050403020100
10
REGISTER 05
15141312111009080706050403020100
0




В приведенных выше таблицах видно, что в регистре 00 бит 00 (т.е. вход 0000) был логическим 0, а бит 01 (т.е. вход 0001) был логическим. Регистр 05 показывает, что бит 00 (т. е. Выход 0500) был логическим 0. Логика 0 или 1 указывает, является ли команда False или True. * Хотя большинство элементов в таблицах регистра выше, пустые, они должны содержать 0. Они были пустыми, чтобы подчеркнуть те места, в которых мы меняем данные.




ЛОГИЧЕСКОЕ СОСТОЯНИЕ СИМВОЛА
LOGIC BITSLDLDBOUT
Logic 0FalseTrueFalse
Logic 1TrueFalseTrue




PLC будет только тогда активировать выход, когда все условия на ступени TRUE. Итак, смотрим на таблицу выше, мы видим, что в предыдущем примере SW1 должен быть логическим 1, а SW2 должен быть логическим 0. Тогда и ТОЛЬКО тогда катушка будет истинна (то есть под напряжением). Если какая-либо из инструкций на ступеньке перед выходом (катушкой) ложна, тогда выход (катушка) будет ложным (не под напряжением).
Давайте теперь рассмотрим таблицу истинности нашей предыдущей программы, чтобы еще раз проиллюстрировать этот важный момент. Наша таблица истинности отобразит ВСЕ возможные комбинации состояния двух входов.




InputsOutputsRegister Logic Bits
SW1(LD)SW2(LDB)COIL(OUT)SW1(LD)SW2(LDB)COIL(OUT)
FalseTrueFalse000
FalseFalseFalse010
TrueTrueTrue101
TrueFalseFalse110




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




Приложение измерение уровня.


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


Рассмотрим следующее приложение:


Мы контролируем выдачу смазочного масла из резервуара. Это возможно с помощью двух датчиков. Мы помещаем один около дна и один вверху, как показано на рисунке ниже.




Dispensing oil from a tank




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


Здесь нам понадобится 3 ввода / вывода (т. е. Входы / выходы).
2 - входа (датчики), а 1 - выход (двигатель насоса).

Оба наших входа датчиков будут NC (нормально закрытыми) оптоволоконными датчиками уровня. Когда они НЕ погружены в жидкость, они будут замкнуты. Когда они погружены в жидкость, они будут разомкнуты.



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



InputsAddressOutputAddressInternal Utility Relay
Low0000Motor05001000
High0001


Ниже приведена лестничная диаграмма . Обратите внимание, что в этом примере мы используем символ внутреннего реле . Вы можете использовать контакты этих реле столько раз, сколько требуется. Здесь они используются дважды для имитации реле с двумя наборами контактов. Помните, что эти реле физически НЕ существуют в PLC, а скорее являются битами в регистре, которые вы можете использовать для симуляции реле.




Completed level control ladder




Мы всегда должны помнить, что наиболее распространенной причиной использования ПЛК в наших приложениях является замена реальных реле. Внутренние символы-реле делают это возможным. Невозможно указать, сколько внутренних реле включено в каждую модель plc. Некоторые из них включают 100, в то время как другие включают 1000 Как правило, решающим фактором является размер plc (не физический размер, а количество контактов ввода-вывода). Если мы используем micro-plc с несколькими вводами / выводами, нам не нужно много внутренних реле. Если мы используем большой PLC с 100 или 1000 входов / выходов, нам, безусловно, потребуется еще много внутренних реле.
Если когда-либо возникает вопрос о том, обеспечивает ли производитель достаточное количество внутренних реле, обратитесь к их спецификациям. Во всех случаях, кроме самого большого из крупных приложений, объем поставки должен быть БОЛЕЕ достаточным.






Сканирование программы


Давайте посмотрим, что происходит при работе программы путем сканирования.



Original program



Сначала резервуар пуст. Следовательно, вход 0000 имеет значение ИСТИНА, и вход 0001 также ИСТИНА.



Scan 1
Scan 1

Scan 2-100
Scan 2-100




Постепенно резервуар заполняется, потому что включен насос (500).


После 100 сканов уровень масла поднимается над датчиком низкого уровня и контакт реле датчика становится открытым. (то есть FALSE)




Scan101-1000




Сканирование 101-1000



Обратите внимание, что даже когда датчик низкого уровня является False, по-прежнему существует путь истинной логики слева направо. Вот почему мы использовали внутреннее реле. Реле 1000 фиксирует выход (500). Он останется таким, пока будет истинным логический путь слева направо (т. е. пока 0001 не станет False)
После 1000 сканов уровень масла поднимается выше датчика высокого уровня, и также становится открытым (то есть False)




Scan 1001
Scan 1001

Scan 1002
Scan 1002


Поскольку истинного логического пути больше нет, выход 500 больше не активируется (True), и поэтому двигатель отключается.
После 1050 сканирования уровень масла падает ниже датчика высокого уровня, и он снова станет истинным.



Scan 1050



Scan 1050



Обратите внимание: несмотря на то, что датчик высокого уровня стал True, по-прежнему отсутствует непрерывный истинный логический путь, и поэтому катушка 1000 остается False !
После сканирования 2000 уровень масла падает ниже датчика низкого уровня, и он снова станет True. На этом этапе логика будет выглядеть так же, как и SCAN 1 выше, и логика повторится, как показано выше.



Инструкции триггера



Теперь, когда мы понимаем, как входы и выходы обрабатываются с помощью plc, давайте посмотрим на изменение наших регулярных выходов. Регулярные выходные катушки, конечно, являются неотъемлемой частью наших программ, но мы должны помнить, что они ИСТИННЫ только тогда, когда ВСЕ ИНСТРУКЦИИ перед ними на ступени также являются ИСТИНАМИ. Что произойдет, если это не так?

Тогда, конечно, выход станет ложным. (Выключится)
Вспомните пример звонка, который мы рассмотрели выше. Что случилось бы, если бы мы не смогли найти переключатель «вкл/ выкл»? Тогда нам пришлось бы продолжать жать на кнопку до тех пор, пока мы хотим, чтобы звонок звенел . (Кратковременный выключатель) Инструкции по фиксации или триггерные, позволяют использовать кнопки и программировать кнопку так, чтобы при нажатии на нее включался выход, а когда мы нажимаем другую кнопку, выход отключался.



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

Команда фиксации часто называется SET или OTL (выходная защелка). Команда разблокировки часто называется RES (сброс), OUT (выходная разблокировка) или RST (сброс). На приведенной ниже диаграмме показано, как использовать их в программе.



Latching diagram


Здесь мы используем 2 кнопки. Одна физически подключена к входу 0000, а другая физически подключена к входу 0001. Когда оператор нажимает кнопку 0000, инструкция «set 0500» станет истинной, а выход 0500 физически включается. Даже после прекращения оператораом нажатия на кнопку, выход (0500) останется включенным. Он заперт. Единственный способ отключить выход 0500 - включить вход 0001. Это приведет к тому, что инструкция «res 0500» станет истинной, таким образом, отключится или сбросится вывод 0500.



Подумайте вот о чем. Что произойдет, если вводы 0000 и 0001 оба будут включены в одно и то же время.
Будет ли вывод 0500 заперт или отключен?
Чтобы ответить на этот вопрос, вы должны подумать о последовательности сканирования. Лестница всегда сканируется сверху вниз, слева направо. Первым делом в сканировании рассматриваются физические входы. 0000 и 0001 физические входы. Затем программа выполняет алгоритм. Начиная с левого верхнего положения, вход 0000 истинен, поэтому он должен установить 0500. Затем он переходит к следующей ступени, и поскольку вход 0001 является истинным, он должен сбросить 0500. Последнее, что программа сделала, это сбросила 0500. Поэтому на последней части сканирования, когда оно обновляет выходы, оно будет отключать 0500. (т.е. сброс 0500).
Теперь понятен смысл, не так ли?


Счетчики



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


Какие счетчики бывают?

Есть up-counter (они только подсчитывают 1,2,3 ...). Они называются CTU, (подсчитывают) CNT, C или CTR. Бывают счетчики, которые осуществляют только обратный отсчет 9,8,7, .... Они обычно называются CTD (обратный отсчет), когда они являются отдельной инструкцией. Есть также счетчики, которые подсчитывают и / или 1,2,3,4,3,2,3,4,5, ...) Они обычно называются UDC (прямой отсчет), когда они являются отдельными инструкциями.


У многих производителей есть только один или два типа счетчиков, но они могут использоваться для подсчета, уменьшения или того и другого. Еще не запутались? Может вы скажете «нет стандартизации»? Не волнуйтесь, теория все равно, независимо от того, что их называют производители. Счетчик - это счетчик ...
Чтобы еще больше запутать проблему, большинство производителей также включают ограниченное количество высокоскоростных счетчиков. Они обычно называются HSC (высокоскоростной счетчик), CTH (AdvTer High-speed?) Или что угодно.


Обычно высокоскоростной счетчик является «аппаратным» устройством. Обычные счетчики, перечисленные выше, обычно являются «программными» счетчиками. Другими словами, они физически не существуют в PLC, а скорее имитируются в программном обеспечении. Счетчики аппаратных средств существуют в PLC, и они не зависят от времени сканирования.
Хорошее эмпирическое правило состоит в том, чтобы всегда использовать обычные (программные) счетчики, если только импульсы, которые вы подсчитываете, будут поступать быстрее, чем 2 времени сканирования. (т. е. если время сканирования составляет 2 мс, а импульсы будут поступать для подсчета каждые 4 мс или дольше, то используйте программный счетчик. Если они поступают быстрее, чем каждые 4 мс (например, 3 мс), используйте аппаратные (высокоскоростные) счетчики (2 x scan время = 2x2 ms = 4 мс)


Чтобы использовать их, мы должны знать 3 вещи:

Откуда берутся импульсы, которые мы хотим подсчитать. Обычно это один из входов (например, датчик, подключенный к входу 0000)
Сколько импульсов мы хотим подсчитать, прежде чем реагировать. Давайте посчитаем 5 импульсов, прежде чем мы отреагируем и
сбросим счетчик, чтобы он мог снова подсчитать. После того, как мы посчитаем 5 импульсов, сбросим счетчик.
Когда программа запускается на коомпьютере, она обычно отображает текущее или «накопленное» значение для нас, чтобы мы могли видеть текущее значение счета.


Обычно счетчики могут рассчитывать от 0 до 9999, -32,768 до +32,767 или от 0 до 65535. Почему такие странные цифры? Потому, что большинство ПЛК имеют 16-разрядные счетчики. Мы поговорим о том, что это значит позже, но на данный момент достаточно сказать, что 0-9999 - это 16-битный Обычно счетчики могут рассчитывать от 0 до 9999, -32,768 до +32,767 или от 0 до 65535. Почему странные цифры? Поскольку большинство ПЛК имеют 16-разрядные счетчики. Мы поговорим о том, что это значит в более поздней главе, но на данный момент достаточно сказать, что 0-9999 - это 16-битный BCD (двоично-кодированный десятичный знак) и что -32,768 до 32767 и от 0 до 65535 - это 16-битный двоичный файл.


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


1st counter symbol


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

Cxxx - это имя счетчика. Если мы хотим назвать это счетчиком 000, мы поставим здесь «C000».
yyyyy - количество импульсов, которые мы хотим подсчитать, прежде чем что-то делать. Если мы хотим подсчитать 5 импульсов, прежде чем включить физический выход, мы добавим 5 здесь. Если мы хотим сосчитать 100 импульсов, тогда мы поставим здесь 100 и т. д. Когда счет будет закончен (т. е. Мы подсчитали yyyyy импульсов), он включит отдельный набор контактов, который мы также обозначим Cxxx.

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


Counter ladder


Вот символ на лестнице, показывающий, как мы настроим счетчик (назовем его счетчиком 000), чтобы подсчитать 100 импульсов с входа 0001 перед включением выхода 500. Датчик 0002 сбрасывает счетчик.

Ниже приведен один символ, который мы можем встретить для счетчика прямого счета. Мы будем использовать ту же аббревиатуру, что и в примере выше (т. Е. UDCxxx и yyyyy)


Up/down counter symbol



В этом двунаправленном счетчике нам нужно назначить 3 входа. Вход сброса имеет ту же функцию, что и выше. Однако вместо того, чтобы иметь только один вход для подсчета импульсов, мы теперь имеем 2. Один для увеличения счета, а другой для уменьшения счета. В этом примере мы будем использовать счетчик UDC000, и дадим ему заданное значение 1000. (мы будем считать 1000 полных импульсов). Для ввода мы будем использовать датчик, который включит вход 0001, когда он увидит импульс, а другой датчик на вход 0003 также включится, когда видит импульс. Когда вход 0001 включается, мы увеличиваем состояние счета, а когда вход 0003 включается, мы уменьшаем состояние счета. Когда мы достигнем 1000 импульсов, мы включим выход 500. Лестничная диаграмма показана ниже.



Up/down counter ladder








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




Таймеры



Давайте посмотрим, как работает таймер. Что такое таймер? Это именно то, что говорит слово ... это инструкция, которая ждет определенное количество времени, прежде чем что-то делать. Звучит просто, не так ли.
Когда мы смотрим на разные виды таймеров, начинается неразбериха. Как всегда,у разных производителей доступны разные типы таймеров .

Вот большинство из них:


  • Таймер задержки включения - этот тип таймера простой «задержки реакции». Другими словами, после того, как наш датчик (вход) включается, мы ждем х секунд перед активацией электромагнитного клапана (выхода). Это самый распространенный таймер. Его часто называют TON (таймер задержки), TIM(таймер) или TMR(таймер).


    Таймер выключения - этот тип таймера является противоположным таймеру задержки включения, указанному выше. Этот таймер просто «задерживает выключение». После того, как наш датчик (вход) срабатывает, мы включаем соленоид (выход). Когда датчик выключается, мы удерживаем соленоид в течение x секунд, прежде чем выключать его. Он называется TOF (таймер с задержкой) и менее распространен, чем указанный выше тип задержки включения. (т. е. немногие производители включают этот тип таймера)

  • Сдерживающий или накапливающий таймер. Для этого типа таймера требуется 2 входа. Один вход запускает событие синхронизации (т. е. Часы начинают тикать), а другой сбрасывает его. Таймеры задержки включения / выключения описанные выше будут сброшены, если входной датчик не был включен / выключен для полной продолжительности работы таймера. Однако этот таймер сохраняет прошедшее время, когда датчик отключается в середине отсчета. Например, мы хотим знать, как долго работает датчик в течение 1 часа. Если мы используем один из вышеуказанных таймеров, они будут сбрасываться, когда датчик выключится / включится. Однако этот таймер даст нам общее или накопленное время. Его часто называют RTO (таймер retentive) или TMRA (таймер накапливания).
Давайте посмотрим, как их использовать. Обычно нам нужно знать 2 вещи:

Что делает таймер. Обычно это один из входов (например, сенсор, подключенный к входу 0000)
Какая нужна задержка до реакции . Например 5 секунд, прежде чем включить соленоид.
Когда инструкции перед символом таймера верны, таймер начинает «тикать». Когда время истечет, таймер автоматически замкнет свои контакты. Когда программа работает на компьютере, она обычно отображает прошедшее или «накопленное» время, чтобы мы могли видеть текущее значение. Обычно таймеры могут считать от 0 до 9999 или от 0 до 65535.
Почему такие цифры? Опять же, поскольку большинство ПЛК имеют 16-разрядные таймеры. Мы поговорим о том, что это значит позже, но на данный момент достаточно сказать, что 0-9999 - это 16-битный BCD (двоично-десятичный код) и что цифры от 0 до 65535 является 16-разрядным двоичным значением. Каждый такт часов равен x-секундам.
Обычно каждый производитель предлагает несколько разных тактов. Большинство производителей предлагают 10 и 100 мс шаг (такт часов). «Ms» - миллисекунда или 1/1000 секунд секунды. Некоторые производители также предлагают 1 мс, а также 1 секунду. Эти разные таймеры приращения работают так же, как и выше, но иногда они имеют разные имена, чтобы показать свою временную базу. Некоторые из них - TMH (высокоскоростной таймер), TMS (сверхскоростной таймер) или TMRAF (аккумулирующий быстрый таймер)
Ниже показан типичный символ инструкции таймера, с которым мы столкнемся (в зависимости от того, какого производителя мы выбираем) и как его использовать. Помните, что, хотя они могут выглядеть по-другому, все они используются в основном одинаково. Если мы сможем его настроить, мы можем настроить любой из них.



Timer symbol



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

Ниже показан символ таймера включения на лестничной диаграмме:



Timer ladder


На этой диаграмме мы предполагаем, что вход 0001 включится. Когда это происходит, таймер T000 (таймер с шагом 100 мс) начинает считать заданный промежуток времени. Он будет считать 100 тактов. Каждый такт(приращение) составляет 100 мс, поэтому таймер будет считать 10000 мс (т. е. 10 секунд). 100 ticks X 100 ms = 10,000 ms.Когда пройдет 10 секунд, контакты T000 замкнутся и 500 включится. Когда вход 0001 отключится (ложь), таймер T000 вернется к 0, заставив его контакты отключиться (станет ложным), в результате чего выход 500 отключится.


Накопительный таймер будет выглядеть примерно так:



Accumulating timer symbol



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


Символ таймера показан на лестничной диаграмме ниже.



Accumulating timer ladder



На этой диаграмме мы ждем сигнал входа 0002 для включения. Когда таймер T000 (таймер с шагом 10 мс) начинает работу,он будет тактироваться 100 раз. Каждый такт(приращение) составляет 10 мс, поэтому таймер будет включен 1000 мс (т.е. 1 секунда). 100ticks X 10ms = 1000 мс. Когда пройдет 1 секунда, контакты T000 закроются и 500 включится. Если вход 0002 отключится, текущее прошедшее время будет сохранено. Когда 0002 снова включится, счет продолжится с того места, где он остановился. Когда вход 0001 включается (истина), таймер T000 возвращается обратно в 0, заставляя его контакты разомкнуться(становиться ложными), тем самым вывод 500 выключается.


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




Точность таймера


Теперь, когда мы увидели, как создаются и используются таймеры, давайте немного узнаем о их точности. Когда мы создаем таймер, который работает несколько секунд или более, мы, как правило, не очень обеспокоены их точностью, потому что это обычно незначительно. Однако, когда мы создаем таймеры, которые имеют продолжительность в миллисекундах (1 мс = 1/1000 секунд), мы ДОЛЖНЫ быть обеспокоены их точностью.
При использовании таймера существуют общие два типа ошибок. Первая называется ошибкой ввода. Другая называется выходной ошибкой. Общая ошибка представляет собой сумму ошибок ввода и вывода.


  • Ошибка ввода. Ошибка возникает тогда, когда во время цикла сканирования включается вход таймера. Когда вход включается сразу после того, как plc просмотрел состояние входов за время цикла сканирования, ошибка входа будет самой большой. (то есть более 1 полного времени сканирования!). Это связано с тем, что, как вы помните, (см. Главу времени сканирования), входы просматриваются один раз за цикл сканирования. Если это не было, когда PLC посмотрел входы и включится позже в сканировании, мы, очевидно, имеем ошибку. Далее нам нужно подождать, пока инструкция таймера не будет выполнена во время выполнения программы. Если инструкция таймера является последней инструкцией на ступени, это может быть довольно большой ошибкой!

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



Ниже приведена диаграмма, иллюстрирующая наихудшую возможную ошибку входа. Заметьте, что наихудшей возможной ошибкой ввода будет 1 полное время сканирования + 1 время выполнения программы. Помните, что время выполнения программы варьируется от программы к программе. (зависит от количества инструкций в программе!)




Timer input error diagram



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



Total output error diagram



Основываясь на приведенной выше информации, мы можем теперь увидеть, что общая наихудшая возможная ошибка таймера будет равна:
1 время сканирования + 1 время выполнения программы + 1 время сканирования

= 2 времени сканирования + 1 время выполнения программы.

Что это на самом деле значит? Это означает, что, хотя у большинства производителей в настоящее время есть таймеры с шагом 1 мс, они действительно не должны использоваться для продолжительности менее нескольких миллисекунд. Это предполагает, что время сканирования составляет 1 мс. Если ваше время сканирования составляет 5 мс, вам лучше не использовать таймер с длительностью менее 15 мс. Однако, мы можем знать, какие ошибки мы можем ожидать. Если мы знаем, какую ошибку ожидать, тогда мы можем подумать, допустима ли эта ошибка для нашего приложения. В большинстве приложений эта ошибка незначительна, но в некоторых высокоскоростных или очень точных приложениях эта ошибка может быть ОЧЕНЬ существенной.

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

Ошибка аппаратного выхода вызвана разницей между временем, когда plc дает команду физически включить свой выход и до момента, когда это действительно происходит. Обычно время реакции транзистора занимает около 0,5 мс, тогда как механическое реле реагирует около 10 мс.
Ошибка продолжает расти, не так ли! Если она становится слишком большой для приложения, подумайте об использовании внешнего «аппаратного» таймера.



Один кадр



Один кадр- интересный и бесценный инструмент программирования. На первый взгляд может быть трудно понять, почему такая инструкция необходима. Однако, когда мы понимаем, что делает эта инструкция и как ее использовать, необходимость становится ясной.
Один кадр используется, для того,чтобы событие произошло только для 1 SCAN. (вы помните, что такое сканирование, правильно?) Большинство производителей имеют однократные циклы, реагирующие на переход и другой тип, реагирующий на переход от перехода к выключению. Некоторые названия для инструкций могут быть difu / difd (дифференцировать вверх / вниз), sotu / sotd (один выход вверх / вниз), osr (однократное повышение) и другие. Однако все они получают одинаковый результат независимо от имени.


One-shot instruction



Инструкции одного кадра



Выше показан символ для инструкции difu (one-shot). Диффа выглядит одинаково, но внутри символа он говорит «difd». Некоторые производители обозначают его в форме коробки, но, независимо от символа, все они функционируют одинаково. Для тех производителей, которые не реализуют инструкцию дифференцирования вниз, вы можете получить тот же эффект, поставив перед ним инструкцию NC (нормально закрытую) вместо инструкции NO (нормально разомкнутая). (т. е. отменить логику перед инструкцией difu)


Давайте теперь настроим приложение, чтобы увидеть, как эта инструкция действительно работает в лестнице. Эта инструкция чаще всего используется с некоторыми из расширенных инструкций, где мы делаем некоторые вещи, которые ДОЛЖНЫ быть реализованы только один раз. Однако, поскольку мы еще не дошли до этого, давайте настроим флип-флоп-схему. Проще говоря, flip / flop поворачивает что-то вокруг каждый раз, когда происходит действие. Здесь мы будем использовать один кнопочный переключатель. В первый раз, когда оператор нажимает его, мы хотим, чтобы выход включился. Он останется «зафиксированным» до следующего нажатия на кнопку. Когда он это сделает, выход отключится.




Вот диаграмма лестницы, которая делает именно это:




Flip-flop ladder diagram



Теперь это выглядит запутанным! На самом деле это не так, если мы делаем это шаг за шагом.


Rung 1 - Когда NO (нормально открытый) вход 0000 становится истинным, DIFU 1000 становится истинным.

Rung 2 NO 1000 истинно, NO 1001 остается ложным, NC 1001 остается верным, NC 1000 становится ложным. Поскольку у нас есть истинный путь (NO 1000 и NC 1001)

OUT 1001 становится истинным.

Rung 3 NO 1001 верно, поэтому OUT 500 становится истинным.


Следующее сканирование



  • Rung 1- NO 0000 остается верным. DIFU 1000 теперь становится ложным. Это связано с тем, что команда DIFU применима только для одного сканирования. (то есть передним фронтом логики перед ним на ступени)

    Rung 2 NO 1000 ложно, NO 1001 остается верным, NC 1001 является ложным, NC 1000 становится истинным. Поскольку у нас STILL есть истинный путь, (NO 1001 & NC 1000) OUT 1001 остается верным.

    Rung 3 NO 1001 верно, поэтому OUT 500 остается верным.

    После 100 сканирований NO 0000 отключается (становится ложным). Логика остается в том же состоянии, что и «следующее сканирование», показанное выше. (difu не реагирует, поэтому логика остается неизменной на ступеньках 2 и 3)

    При сканировании 101 NO 0000 снова включится. (становится истинным)

    Rung 1 - Когда NO (нормально открытый) вход 0000 становится истинным, DIFU 1000 становится истинным.

    Rung 2 NO 1000 истинно, NO 1001 остается верным, NC 1001 становится ложным, NC 1000 также становится ложным. Поскольку мы больше не имеем истинного пути, OUT 1001 становится ложным.

    Rung 3 NO 1001 неверен, поэтому OUT 500 становится ложным.


    Выполняя программу по 1 инструкции за раз делает эту и любую программу легко выполнимой. На самом деле более крупная программа, которая имеет много циклов, может быть трудно выполнима, но схема регистров наверняка упростит процесс!



Мастер управления


Давайте посмотрим, что называется мастерами управления. Главные элементы управления можно рассматривать как «аварийные выключатели». Выключатель аварийной остановки обычно представляет собой большую красную кнопку на машине, которая отключит ее в случае чрезвычайной ситуации.

* ВАЖНО. Мы не подразумеваем, что эта инструкция заменяет переключатель с «жесткой функцией» e-stop. Такой переключатель не заменит! Скорее всего, это простой способ понять их.

Основная команда управления обычно используется в паре со сбросом главного управления. Однако это зависит от производителя. Некоторые используют MCR в парах вместо того, чтобы объединять его с другим символом. Он обычно сокращается как MC / MCR (сброс главного управления / главного управления), MCS / MCR (мастер-контроль / сброс управления) или просто MCR (сброс главного управления).



Вот один пример того, как выглядит главный управляющий символ.


Master control symbol



Ниже приведен пример сброса главного управления.



Master control reset symbol



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



Master control ladder



Вот как работают разные ПЛК этой программы:

Производитель X- В этом примере ступени 2 и 3 выполняются только при включенном входе 0000 (true). Если вход 0000 не включен , plc делает вид, что логика между командами mc и mcr не существует. Поэтому он обходит этот блок инструкций и сразу же переходит на ступеньку после инструкции mcr.

И наоборот, если вход 0000 истинен, plc выполнит ступени 2 и 3 и обновит состояние выходов 0500 и 0501 соответственно. Итак, если ввод 0000 истинен, выполнение программы переходит к rung 2. Если вход 0001 является истинным, то значение 0500 будет истинным, и, следовательно, оно будет включено, когда plc обновит выходы. Если вход 0002 является истинным (то есть физически выключен), то значение 0501 будет истинным, и поэтому оно будет включено, когда PLC обновит выходы.

MCR просто сообщает plc «это конец блока mc / mcr».
В этом plc время сканирования не увеличивается, когда блок mc / mcr не выполняется, поскольку plc делает вид, что логика в блоке не существует. Другими словами, инструкции внутри блока не видны plc, и поэтому он не выполняют их.

Производитель Y- В этом примере ступени 2 и 3 всегда выполняются независимо от состояния входа 0000. Если вход 0000 не соответствует действительности, PLC выполняет инструкцию MC. (т. е. MC становится истинным). Затем он отключает все команды ввода внутри блока. Если ввод 0000 истинен, команда MC становится ложной.
Затем, если ввод 0000 истинен, выполнение программы переходит к rung 2. Если вход 0001 является истинным, значение 0500 будет истинным, и, следовательно, оно будет включено, когда plc обновит выходы. Если вход 0002 является истинным (то есть физически выключен), то значение 0501 будет истинным, и поэтому оно будет включено, когда PLC обновит выходы. MCR просто сообщает plc «это конец блока mc / mcr». Когда вход 0000 является ложным, входы 0001 и 0002 вытесняются независимо от того, физически они включены или выключены. Следовательно, выходы 0500 и 0501 будут ложными.
Разница между производителями X и Y выше заключается в том, что в схеме Y время сканирования будет одинаковым (ил близкое к тому ) независимо от того, включен ли блок или нет. Это происходит потому, что plc видит каждую команду, включен или выключен блок.
Большинство изготовителей сделают ранее зафиксированную команду (та, что находится внутри блока mc / mcr), сохраняют прежнее состояние.

Если бы это было верно раньше, это останется верным.
Если раньше оно было ложным, оно останется ложным.

Таймеры не должны использоваться внутри блока mc / mcr, потому что некоторые производители сбрасывают их до нуля, когда блок является ложным, тогда как другие производители будут иметь их текущее состояние времени.
Обычно счетчики сохраняют свое текущее подсчитанное значение.
Вот что нужно отметить прежде всего. Когда блок mc / mcr выключен (т. е. Вход 0000 будет ложным в примере лестницы, показанном ранее), инструкция OUTB (OutBar или OutNot) не будет физически включена. Он физически отключен.


Outbar symbol


Инструкция OutBar

В заключение, БУДЬТЕ ОСТОРОЖНЫ! Большинство изготовителей используют схему исполнения производителя Y, показанную выше. Однако, если вы сомневаетесь, прочитайте инструкцию по изготовлению. Еще лучше, просто спросите их.







Написать:
10:12
5652
No comments yet. Be the first to add a comment!