Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обзор языков и сред программирования ПЛК




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

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

 

2. 1 Языки релейно-контактных схем (РКС) и

Списка инструкций (СИ).

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

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

· Заменить источник питания. В РКС для этого использованы две вертикальные прямые с обеих сторон окна описания программы. Можно считать одну из них плюсовой шиной питания, а другую – минусовой.

· Присвоить символы входам и выходам.

Как пройти эти этапы составления программы, показывается на примере простейшей задачи. На рисунке 1.16 приведена схема подачи питания на контроллер. Оно включается нажатием кнопки Start, а отключается кнопкой аварийного или штатного останова (с индексом 3). Если предположить, что некоторый контроллер по своей программе должен включить питание на контроллер, изображённый на рис.1.16, а под кнопками с ручным управлением понимать управляемые контакты, то в символике языка РКС это можно представить следующим образом.

Назначим символы входам и выходам.

Вход (X1) – нормально открытый (разомкнутый) контакт. При срабатывании кнопки Start этот контакт замкнётся.

Вход (X2) – нормально закрытый (замкнутый) контакт. При срабатывании кнопки останова этот контакт разомкнётся.

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

Программа включения будет выглядеть так:

 

В реальных программах взаимодействует много сигналов, и отдельные строки записываются одна под другой (лестницей, ступеньками). Видимо поэтому язык РКС в англоязычной литературе часто обозначается как LAD (Ladder Diagram), т.е. лестничных диаграмм.

Отметим, что рассмотренную задачу включения нагрузки можно представить иначе. Речь идёт о языке, который называется “ Список Инструкций” (СИ). Поскольку среда программирования MELSEC MEDOC FX / WIN позволяет составлять программу и в одном языке, и в другом, то, чтобы избежать излишних повторений при их описании, одни и те же примеры будут рассмотрены параллельно и записаны в форматах представления обоих языков (РКС и СИ).

В языке РКС и типы контактов, и их взаимодействие отображаются в тексте программы путём указания вида их соединения.

В языке СИ и тип контакта, и способ взаимодействия обозначаются соответствующей командой.

Самые простые КОМАНДЫ обозначают только тип контакта.

1. Команда LD.

 

И графическое отображение в РКС, и команда LD в СИ обозначают нормально открытый (незамкнутый) контакт. При замыкании X0 выход Y0 перейдёт в состояние ON (включено).

2. Подобно этому символ и команда LDI обозначают нормально закрытый (замкнутый) контакт X1, при срабатывании которого выход Y1 перейдёт в состояние OFF (выключено).

 

Значительная часть КОМАНД определяет характер взаимодействия сигналов.

3. Команда AND – логическое умножение (конъюнкция). Результатом операции является «истина», если оба операнда принимают значение «истина», и «ложь» - во всех других случаях.


 

 

4. Команда ANI - отрицание логического умножения, так она названа. Но не следует воспринимать её как отрицание конъюнкции.

 

 

Убедиться в том, что команда ANI и логическая функция “отрицание конъюнкции” – это не одно и то же, можно простым сравнением их таблиц состояний. Команда ANI - это скорее отрицание импликанты, так называемая коимпликанта . Можно считать её схемой совпадения на два входа с запретом по X1. Проще всего это представить себе как последовательное соединение элементов LD и LDI.

 

5. Команда OR -логическое сложение

 

 

Эта команда применяется для описания фрагмента соединения, при котором выходная цепь Y0 переходит во включенное состояние, если хотя бы один из входных сигналов (X0 или X1) примет значение ON.

6. Команда ORI – отрицание логического сложения.

 

К этой команде в полном объёме применимы те замечания, которые были сделаны по поводу команды ANI. Её следует ассоциировать только с вполне определённым соединением входных сигналов.

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

Следует обратить внимание на то, что эти команды могут приме­няться не только к физически существующим устройствам (датчикам), но и к программно реализованным внутренним реле контроллера. По терминологии MELSEC MEDOC FX / WIN этим понятием объединяются самые различные внутренние элементы программы: вспомогательные реле и другие элементы коммутации. Среды программирования организованы так, что в программе можно обращаться к входным и выходным цепям этих элементов как к реально существующим устройствам.

Пример на использование внутренних реле. На рисунке 2.1 показан резервуар, на стенках которого установлены датчики, обозначения X0 и X1 которых пусть будут соответствовать уровням их установки. Текущее значение уровня

 

Рис.2.1

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

Задача сводится к следующему. Уровень воды в ёмкости надо поддерживать в пределах от X0 до X1. Для этого при опускании уровня до X0 нужно включить насос и выключить его, когда уровень достигнет X1. Считать, что датчики X0 и X1 работают одинаково: их выходной сигнал принимает значение ON, когда измеряемый уро­вень опускается ниже уровня их установки.

Предстоит определиться с тем, как организовать управление включением насоса, или иначе – как программно должны быть свя­заны входные воздействия X0 и X1 с управляющим выходным сиг­налом Y0?

а) Пусть насос будет включаться при одновременно включен­ных обоих датчиках, т.е. в полном соответствии с содержанием ко­манды AND. Что получится в итоге?

 

 

Уровень должен упасть ниже X0, чтобы можно было включить насос. Включили, восстановили уровень X0, датчик уровня X0 вы­ключился, и вместе с ним выключился насос. При таком управлении уровень воды в резервуаре принципиально не может быть поднят выше X0.

б) Расположим в программе входные сигналы «параллельно», как это принято в команде OR, чтобы насос включался при включен­ном хотя бы одном из датчиков. К чему это приведёт?

-

 

Пока уровень ниже X1, датчик этого уровня будет включен, и, независимо от состояния датчика X0, насос будет стремиться подка­чивать воду до достижения уровня X1, после чего он выключится. Из–за естественного разбора воды её уровень когда-то чуть-чуть станет ниже X1, и насос сразу будет вынужден включиться.

Иными словами, получен один из самых плохих вариантов управления, при котором «включение / выключение» насоса будет происходить постоянно и непрерывно, а регулируемый уровень не сможет уйти от X1.

в) Задача решается гораздо проще применением внутреннего реле. М1 – программно организованное внутреннее реле.

 

 

При опускании уровня ниже X0 оба датчика включены. Срабатывает “реле” М1, встаёт на самоблокировку от отпускания контакта X0 и включает насос Y0. Самоблокировка придаёт реле способность запоминать включённое состояние, поэтому часто используется в релейной схемотехнике. Реализуется она следующим образом. Реле, перейдя во включенное состояние, одной парой своих контактов шунтирует контакт (кнопку), замыкание которого вызвало срабатывание реле. Поэтому, при размыкании контакта X0, вызвавшего срабатывание реле, оно остаётся включенным через шунтирующую цепь блокирующего контакта (в примере программы это M1).

Поделиться:





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



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...