Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


МИКРОКОНТРОЛЛЕРЫ В СИСТЕМАХ УПРАВЛЕНИЯ.



МИКРОКОНТРОЛЛЕРЫ В СИСТЕМАХ УПРАВЛЕНИЯ.

Лекции –48 часов

Лабораторные работы –16 часов

Курсовой проект

I. Назначение логических контроллеров

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

 

Пример применения

В резервуаре высотой 100 см и квадратным сече­нием по внутреннему контуру 12 х 12 см2 налита вода (рис.1.6). Уровень воды может изменяться за счёт её пополнения от питающей магистрали через электромагнитный клапан (ЭМК) и уменьшения от естественного расхода. Уровень измеряется датчиком ИСУ – 100 И [], который преобразует его в токовый сигнал 0…20 mA и передаёт на вход контроллера для выработки управляющих воздействий на ЭМК.

Задание: определить уставки на срабатывание и отключение ЭМК, обеспе­чивающие включение кла­пана при опускании уровня до отметки L1, при которой ос­таток воды в ёмкости равен 3 литрам; после этого до­лить в неё 7 литров и вы­ключить ЭМК с возможно­стью не­прерывного повто­рения цикла.

 

Решение.

· Токовый сигнал преобразуется в масштаб напряжения по схеме рис. 1.4.

 

Рис. 1.6

 

Ÿ Прибор измеряет уровень, а не объём, т.е. его показания будут одинаковы при любых значениях поперечного сечения резер­вуара. Но так как по условиям задачи требуется управлять объёмом, нужно рассчитать, на каких значениях уровня объём будет равен 3 и 10 литрам. Так как L = V / S, а S = 12 ∙ 12 = 144 см2 , получено:

L1 =3000 см3 / 144 см2 = 20, 83 см,

L2 = 10000 см3 / 144 см2 = 69, 4 см.

Если учесть, что при уровне 100 см входной сигнал контроллера ра­вен 10 B, а это в свою очередь соответствует числу 255. то можно перевести най­денные значения L1 и L2 в их целочисленные эквива­ленты:

X1 = 255 ∙ L1 / 100 = 53; X2 = 255 ∙ L2 / 100 = 1 77.

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

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

На рис.1.7 показывается, как это можно сделать на основе совместного исполь­зования R-S триггера (блок B03) и компараторов. В этом случае триггер выпол­няет функции переключаемого элемента (самоблокирующегося реле), а моменты переключения определяются по результатам срав­нения текущих значений уровня с введёнными в компараторы поро­говыми значениями X1 и X2.

 

Рис. 1.7

Программы для рассматриваемого примера составлены в среде Zelio Soft 2 применительно к контроллерам Telemechanique фирмы Schneider Electric. Три левых блока на рис. 1.7 – это устройства аналого­вого ввода. На схеме показано их обобщённое отображение

Через B00 текущие значения уровня подаются на верхние аналого­вые входы компараторов B01 и B02 для сравнения с пороговыми значениями на переключение. Пороги сравнения поданы на нижние входы, а условия переключения заданы как < = (не больше) для B 01 и > = (не меньше) для B 02. Управление ЭМК осуществля­ется R – S триггером B 03 с установкой от B 01 и сбросом от B 02.

Графику отображения блоков ввода и вывода есть возмож­ность изменить, если есть желание более точно выразить в ней функциональное назначение сигнала. Это показано на рисунке 1.9, где блоки установки уровней сравнения изображены потен­циометрами, а информационный вход – датчиком. Выходной блок также отображён максимально приближенным к управляемому кла­пану.

 

 

 
 

Рис. 1.8

 

Работу программы можно пояснить временной диаграммой (рис. 1.8). Пока уровень воды меньше 3 литров (числовой эквива­лент в дискретах X1 =53), на выходе B 01 выделяется сигнал ON, устанавливаю­щий выход триггера B 03 в ON, обеспечивая тем самым включение клапана. Как только уровень превысит значение 53, блок B 01 переключится на OFF, но B 03 «запомнит» своё прежнее состояние и ЭМК будет поддерживаться в открытом состоянии. Только когда уровень пре­высит отметку X2 =177, переключившийся в ON компаратор B 02 сбросит B 03 в OFF и ЭМК выключится. Заполнение резервуара водой прекратится до того момента времени, пока уровень не окажется ниже порога X1 =53.

 

 
 

 

а

 


 

б

Рис. 1.9

На рис. 1.9, а и б показано исполнение программы для двух промежу­точных этапов управления, соответствующих моментам времени t1 и t2 на временных диаграммах. Численные значения пороговых и текущих значений уровня даны комментариями к блокам про­граммы.

Эту же задачу можно решить иначе, если вместо совместного использования компараторов и R–S триггера применить триггер Шмитта. Он способен совместить функции переключения по заданным пороговым значениям и самоблокирующегося реле для запоминания ранее достигнутого состояния.

По правилам описания блока верхнее пороговое значение X2 = 177 присваивается переключению в ON, а нижнее X1 =53 – возвращению его в OFF. При такой работе блока переключение ЭМК было бы обратным тому, каким оно должно быть (он включался бы тогда, когда его надо было выключать), поэтому между триггером и ЭМК включен инвертор. Рисунок 1.10 иллюстрирует выполнение сформулированной задачи управления.

 
 

а

 

 
 

 

б

 

 

Рис. 1. 10

 

6. В практике использования ПЛК, и в схемотехниче­ской её части, и в программной, постоянно присутствуют эти два понятия: аналоговый и дискретный. Даже на только – что приведен­ных рисунках видно, что есть блоки ввода обоих этих типов сигна­лов. Графически цепи передачи аналоговых сигналов могут обозна­чаться в одних программных средах утолщёнными, в других - сдвоенными линиями. Порты под­ключения аналоговых линий связи могут отмечаться только им при­сущей зеленоватого цвета подсветкой. Отдельные блоки могут иметь входы или выходы для аналоговых или дискретных сигналов. Цепи подключения этих сигналов на поле расположения программы отображаются по-раз­ному, и соединять вход одного типа с выходом другого типа не до­пускается. Даже сами типы и модели контроллеров отличаются спо­собами задания типов входов и выходов, их количества и т.д.

 

Пример расчёта параметров цепи сопряжения.

Исходные данные. К входу контроллера LOGO! фирмы SIEMENS через порт ввода дискретных сигналов подключается ёмкостный датчик положения E2K - C25ME1 фирмы OMRON, имеющий выходной порт N – P – N типа в соответствии с рис.1.13, б. Напряжение питания датчика равно + 24 B.

Задание. Необходимо найти диапазон допустимых значений сопротивления R.

а б

Рис. 1.14

Решение. Цепь передачи сигнала может находиться в двух состояниях – включенного и выключенного контакта ВК. Соответствующие схемы замещения приведены на рис.1.14.

При замкнутом контакте (рис.1.14, а) входная цепь ПЛК зашунтирована накоротко, Iвх ПЛК =0, и ток протекает от источника +24 B через резистор R. Этот ток не должен быть больше разрешённого для выходной цепи датчика, так как иначе контакт сгорит. По техническим параметрам E2K-C25ME1 ток Imax = 0, 2 A. Можно найти Rmin = 24 B / 0, 2 A =120 Oм.

При разомкнутом положении ВК (рис.1.14, б) ток протекает через последовательное соединение R и Rвх ПЛК. По характеристикам контроллера его входная цепь «распознает» сигналы уровней ON и OFF при Uвх = 12 B и Iвх > 2, 5 mA. Примем Iвх = 5 mA и будем считать, что на резисторе R от протекания такого тока падение напряжения не должно превышать UR = Uпит - Uвх = 24 B – 12 B = 12 B. Этому будет соответствовать максимально допустимое значение сопротивления Rmax =UR / I вх = 12 / 0, 005 = 2400 Ом.

Таким образом, величина сопротивления R может быть выбрана не меньше 120 Ом (иначе сгорит контакт) и не больше 2, 4 кОм, чтобы контроллер не потерял способность распознать при вводе уровни сигналов ON и OFF.

Варианты подключения выходных цепей

Рис.1.18 иллюстрирует правила подключения релейных вы­ходов, которые функционально предназначены для дискретного управления выходными цепями, т.е. такими, которые работают по принципу «включено / выключено». Их работа основана на замы­кании и размыкании выходных цепей с помощью контактов, входя­щих во внутреннюю структуру контроллера.

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

В некоторых моделях контроллеров встречается объединение двух и более выходов с образованием общей точки. Поэтому характер соединения схемных компонентов объекта управления должен учитываться более внимательно.


 

 

Рис. 1.18

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

Из сопоставления ха­рактеристик релейных и транзисторных выходов стано­вятся очевидными более высокая коммутируемая мощность первых и более высокое быстродействие вторых.

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

 

Рис. 1.19


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

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

· До сих пор рассматривались самые «лёгкие», самые простые типы ПЛК. У более сложных контроллеров эти «недостатки» проявляются в меньшей степени.

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

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

· Модульная структура построения контроллеров, например, фирмы BECKHOFF [ ], для встроенных приложений обеспечивает высокую степень согласования мощных вычислительных ресурсов промышленного компьютера с той лёгкостью подключения датчиков и исполнительных устройств, которая свойственна логическим контроллерам, при информационном обмене компонентов по внутренней 15–ти битной магистрали K-bus. В результате получается быстродействующая, легко наращиваемая и переконфигурируемая в различные типы промышленных сетей структура, допускающая интеграцию её в общую информационную сеть предприятия, учреждения, интеллектуального дома и т.д..

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

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

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

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

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

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

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

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

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

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

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

 

В реальных программах взаимодействует много сигналов, и отдельные строки записываются одна под другой (лестницей, ступеньками). Видимо поэтому язык РКС в англоязычной литературе часто обозначается как LAD или LD (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).

Программирование на языке

Функционально – блоковых диаграмм ФБД (FBD)

 

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

- что,

- в какой последовательности и

- какими средствами (применением усилителей, преобразователей формы кривой: интеграторов или дифференциаторов, счётчиков, временных компонентов и т. д.)

надо сделать с этими сигналами, чтобы работа будущей «схемы» соответствовала требованиям задания.

Язык ФБД – это набор программно реализованных блоков, каждый из которых предназначен для выполнения какой – то определённой функции по преобразованию сигнала. Если подобрать достаточное количество функционально подходящих блоков и соединить их между собой соответствующим образом, получится программа работы контроллера. Что характерно: и в реальной схеме, и в программе на ФБД по линиям соединения узлов (блоков) можно проследить от начала и до самого конца всю последовательность преобразования сигнала. В программе, написанной на языке РКС, этого не удастся сделать.

Чтобы пояснить сам принцип программирования на ФБД, обратимся к простому примеру. Общеизвестен принцип измерения частоты следования импульсов. Если измеряемая частота мала ( период колебаний Tх относительно продолжителен), то удобно подсчитать число импульсов N известной частоты fсч = 1 / Tсч, которые проходят на вход счётчика за время полупериода измеряемой частоты (рис.2.9, а). Из простых и очевидных соотношений понятен механизм пересчёта результатов в значения измеряемой частоты: fх =1 / Tх ; Tх / 2 = N× Tсч; Tх = 2N × Tсч; f х =1 / (2N × Tсч).

Если измеряемая частота сигнала высокая (период короткий), этот способ измерения применить «один в один», т.е. без поправки на изменившиеся условия, вряд ли получится: при малой длительности измеряемого периода Tх частота импульсов заполнения должна быть неприемлемо высокой. Поэтому поступают иначе: формируют интервал наблюдения заранее известной длительности Tи и заполняют его импульсами измеряемой частоты fх (рис. 2.9, б). Так как Tи = M × Tх , то fх = 1 / Tх = M / Tи . Принципы измерения в обоих случаях очень похожи. Меняется лишь содержание того, что чем заполняется: специально сгенерированными импульсами fсч измеряемый интервал Tх, как в первом случае, или формируемый интервал наблюдения Tи импульсами измеряемой частоты fх , как на рис.2.9, б.

Рис. 2.9

 

Пример программирования на языке ФБД

Задача: средствами языка ФБД запрограммировать получение интервала наблюдения длительностью 10 секунд. Следует предусмотреть один дискретный вход для активизации программы и два дискретных выхода для получения отметок времени со сдвигом на полпериода друг относительно друга.

Выполнение. Перед тем, как начать что–то делать, целесообразно при всём многообразии вариантов решения остановиться на каком–то одном. Пусть для нашего примера выбранный способ решения задачи соответствует временным диаграммам на рисунке 2.10.

Входным сигналом (диагр.1) программа запускается. Формируемая непрерывная последовательность импульсов (диагр.2) поступает на счётчик (диагр.3). Временные параметры генерируемых импульсов (2) и устанавливаемый коэффициент счёта счётчика должны допускать настраиваемость программы на получение интервала наблюдения 10 секунд.

После достижения установленного коэффициента счёта надо предусмотреть мероприятия для сброса счётчика в исходное состояние. Здесь могут оказаться полезными функции укорочения импульсов, задержки появления сигнала, чтобы можно было разнести по времени действия сигналы счёта и сброса (диагр.4 и 5). Выходные сигналы (диагр.6 и 7) выдаются в виде инвертированных импульсов. Их форма кривой получается путём преобразования, похожего на деление частоты импульсов (диагр.4) вдвое с помощью элемента, работающего как D – триггер. Если формирование интервала наблюдения выполнять в соответствии с рис. 2.10, то на языке ФБД в среде α – Programming это могло бы быть представлено как на рис. 2.11. Очень легко устанавливается соответствие между временными диаграммами и программой. На каждой строке диаграмм справа проставлены номера выходных сигналов блоков, на которых эти сигналы получены.

 

 

Рис. 2.10

При включении I 01 начинает генерировать импульсы блок FLICKER. В окне описания блока заданы длительности импульса ON и паузы OFF между ними, каждая из которых равна 100ms. При таком задании период равен 200 ms, что соответствует частоте 5 Гц, т.е. получению 5 импульсов в секунду. Чтобы обеспечить общую длительность интервала 10 секунд, в счётчик COUNTER надо ввести коэффициент счёта 50. Все эти вводимые величины показаны на вкладках, представляющих собой фрагменты окон описания блоков FLICKER и COUNTER.

 
 

 

Рис.2.11

 

 

Пока счётчик не закончил очередной счёт, его выходной сигнал B 02 имеет уровень OFF, и для того, чтобы начать формирование выходного импульса, начиная с первого полупериода, установка триггера (B 03) осуществляется через инвертор (B 04). Выходной сигнал R - S триггера (B 03) делится по частоте вдвое элементом ALT (B 07), представляющим собой аналог D – триггера. Блоки задержки (B 05) и «дифференцирования» (B 06) применены для сброса счётчика в нулевое состояние.

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

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

 

Рис.2.12

По сравнению с рис.2.11 в полях задания длительностей импульса и паузы блока FLICKER вместо единиц введены коэффициенты 100. После умножения их на 100ms = 0, 1s получаются длительности импульса и паузы как раз равными требуемым 10 секундам. В этом варианте экономится объём занимаемой памяти, программа просто выглядит, легко читается.

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

 

 


Вариант решения, правда, не самый удачный, но уж больно хотелось показать, что блоки B 02 и B 08 подключены к одному и тому же выходу блока B 03, но «снимают» с него разные параметры: дисплей – частное Q, а блок умножения – остаток R.

Естественно, что и эту задачу можно решить проще. Для этого изменим последовательность действий и применённые на­стройки блоков (рис.3.12). В самом начале умножим делимое A в десять раз (если результат надо отразить на экране с точностью до сотой, то умножать надо на 100). Полученное на выходе B 01 произведение

 

Рис. 3.12

делится блоком B 02 на делитель (переменную B), а режим отображения результата устанавливается как для частного, выводимого в отношении 1 / 10 ( поле Display Ratio на рис. 3.13).

Б. Освещение подъезда

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

Как формулируется задача? Условимся считать, что в светлое время суток освещение не требуется и поэтому должно быть выключено. С наступлением темноты, особенно в первой половине ночи, когда наблюдается интенсивное хождение людей, возвращающихся домой и т.п., свет должен гореть постоянно. Обе границы этого интервала зависят от времени года, месяца, а при желании более точно учесть изменение светового режима – могут содержать разбивку и по неделям. Иначе говоря, может возникнуть потребность программировать работу на длительные сроки вперёд, причем, режимы переключения для разных месяцев, недель и дней внутри этого срока могут быть самыми разными. А в остальное время ночи, допустим после 24 часов, когдаосвещение требуется лишь эпизодически и на короткое время, его можно включать на время, достаточное для прохода по лестничной клетке. Будем предполагать, что для этого у входной двери и на этажах установлены кнопки без фиксации включенного состояния.

Пример программы дан на рис. 3.26. Запуск выдержки времени на включение освещения предусмотрен по задним фронтам импульсов (по отпусканию кнопок) настройкой блока PULSE на режим ON to OFF. Если во время отработки выдержки времени (свет на время включен) нажать любую из кнопок, выдержка перезапускается заново.

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

В рассматриваемом примере следует обратить особое внимание на блок временного ключа TIME SW (блок с выходом B 05), предоставляющего большие возможности по заданию управляющих воздействий, происходящих в соответствии с вводимыми временными установками.

Режим непрерывного включения освещения, задаваемый по ранее установленному расписанию, обеспечивается применением блока TIME SW (блок с выходом B 05).

 

Рис. 3.26

 

Двойным щелчком левой клавиши мыши (ЛКМ) раскрывается окно Time Switch, в строках которого фиксируются любые вводимые установки по изменению состояния на выходе блока (рис. 3. 27).

 

 

Рис. 3.27

Выбор Open / New открывает возможность задать включение (ON) или выключение (OFF) выходного сигнала в конкретное время (часы, минуты), задаваемое в поле Setting Time, с дискретностью в один день или ежедневно (Daily), с конкретизацией по целым неделям месяца (Every Week) или месяца в целом. Из этого же окна Set Time Switch by Week, если через кнопку By Date (рис. 3. 28) раскрыть следующее окно, то можно установить закономерности переключения в режимах Every Month (каждый месяц), Every Year (каждый год) с возможностью детализации по месяцам, или указать конкретные даты. Перечисленные возможности позволяют запрограммировать достаточно сложные расписания работы, охватывающие длительные интервалы времени, составить программы работы различных автоматических устройств.

 

Рис. 3.28

 

 


А. Язык программирования – ФБД (FBD).

На рис. 4.2 приведена программа, написанная на языке ФБД в среде LOGO! Soft – Comfort [1], и обеспечивающая выполнение всех действий, составляющих работу схемы рис.4.1. Входные сигналы контроллера форми­руются подключенными к его портам ёмкостными датчиками положения; на программе они представлены левыми блоками I1, I2, I3, I4. Выходные сиг­налы контроллера и, следовательно, точки выдачи их на исполнительные или управляющие устройства – представлены правыми блоками Q1, Q2, Q3 и Q4. Блок B006 – это таймер, запускающийся в момент срабатывания датчика Д 1 на время, задающее длительность работы привода мешалки. Блоки В003 и В009 – это R-S триггеры, остальное – обычная логика.

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


Поделиться:



Популярное:

  1. II. Основные принципы создания ИС и ИТ управления.
  2. X. Прикомандирование сотрудников к представительным органам государственной власти и органам государственного управления.
  3. Б1.В.ОД.14 «Информационное обеспечение деятельности органов государственного и муниципального управления. Ч. 1 Информационное управление в органах государственного и муниципального управления»
  4. Внешняя среда, учет ее влияния на модель управления – один из важнейших вкладов системного подхода в науку управления.
  5. Возникновение самоорганизации в неравновесных системах. Понятие обратных связей
  6. Глава 1 Теоретические аспекты инвестиционного проекта и управления.
  7. ГЛАВА 4. ОТНОШЕНИЯ СОБСТВЕННОСТИ В ЭКОНОМИЧЕСКИХ СИСТЕМАХ
  8. Глава IV ПРАВОВОЕ РЕГУЛИРОВАНИЕ ГОСУДАРСТВЕННЫХ ДОХОДОВ И ДОХОДОВ МЕСТНОГО САМОУПРАВЛЕНИЯ. НАЛОГОВОЕ ПРАВО
  9. Государственный и муниципальный долг: понятие, формы, порядок управления.
  10. Группа психологических методов управления.
  11. Датчики систем СЦБ и ЖАТ. Применение датчиков в системах СЦБ и ЖАТ
  12. Дидактические игры в педагогических системах. Виды дидактических игр


Последнее изменение этой страницы: 2017-03-08; Просмотров: 1676; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.161 с.)
Главная | Случайная страница | Обратная связь