Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка Индивидуальное задание.doc
Скачиваний:
77
Добавлен:
10.06.2015
Размер:
704.51 Кб
Скачать

Обмен данными между уровнями асу тп

Вне зависимости от того, как реализуется обмен данными в действительности, программное обеспечение ПЛК должно разрабатываться программистом исходя из того, что инициатором обмена всегда выступает верхний уровень АСУ ТП.

Фактически, обмен данными сводится к работе ПЛК с областью памяти, которая также доступна программно-аппаратным средствам верхнего уровня АСУ ТП (рис. 2).

Рис.2. Организация доступа к памяти ПЛК компании Шнейдер Электрик, программируемых с помощью программыConceptV2.5.

Из рис. 2 видно, что при организации обмена данными с ПЛК компании Шнейдер Электрик, АСУ ТП верхнего уровня может считывать все области памяти и производить запись в области %0x, %4x и область неразмещённых переменных.

Чаще всего, непосредственный опрос областей входов не входит в задачи верхнего уровня, потому что первичная обработка информации, поступающей с датчиков, выполняется ПЛК. Для аналоговых сигналов выполняется линеаризация, масштабирование и фильтрация. Дискретные сигналы используются для определения состояний оборудования (включено, выключено, неисправно). Алгоритм определения состояния оборудования по совокупности дискретных сигналов может быть разработан с помощью SWITCH-технологии[1].

Switch-технология

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

Пример. Разработка программы управления пуском насоса

Постановка задачи. Необходимо разработать программу управления пуском и остановом двигателя насоса по командам из АСУ ТП верхнего уровня.

Принципиальная электрическая схема управления двигателем насоса приведена на рис. 3.

Рис. 3. Принципиальная схема управления электродвигателем насоса: QF1– автоматический выключатель;KM1– магнитный пускатель;KK1– реле тепловое;SA1– переключатель пакетный;SB1, SB2 – кнопочный пост управления

Двигатель может быть включен и выключен по месту, с помощью кнопочного пульта управления, если переключатель SA1установлен в положение «Р» (ручное управление). При этом коммутируется верхняя ветвь электрической цепи управления. Замыкание нормально открытого контакта кнопкиSB1приводит к появлению напряжения на катушке релеKM1, что в свою очередь приводит к замыканию контактовKM1и в цепи управления и в силовой цепи электродвигателя. При размыкании контактаSB1двигатель продолжает работать, поскольку контактKM1в цепи управления остаётся замкнут (релеKM1встало на самоподпитку). Таким образом, двигатель остановится только при разрыве цепи управления, что может быть сделано с помощью кнопкиSB2(нормальный режим), с помощью переключателяSA1и при срабатывании теплового релеKK1(аварийный режим).

При переключении SA1в положение «А» (автоматическое, или дистанционное управление), подачей напряжения на катушку релеKM1можно управлять с помощью контактов дискретных выходов контроллера (см. рис. 3, 4). Принцип управления такой же, как и при ручном управлении: подача кратковременного сигнала «1» на выход контроллера с адресом%000001, приводит к включению релеKM1и постановке на самоподпитку; отключение двигателя в нормальном режиме осуществляется подачей сигнала «1» на выход контроллера с адресом%000002, который является нормально замкнутым.

Рис. 4. Информационные потоки программы управления двигателем

Для предотвращения выхода из строя двигатель оснащён тепловым реле KK1, которое отключает двигатель в случае перегрева.

К дискретным входам контроллера подключены сигналы, которые позволяют отследить состояние переключателя SA1, состояние магнитного пускателяKM1и состояние теплового релеKK1(см. рис. 3, 4). Эта информация используется для отображения состояния двигателя на верхнем уровне АСУ ТП.

В соответствии со SWITCH-технологией схема автомата состоит из двух частей – схемы связейиграфа переходов. Начнём разработку программы управления пуском и остановом двигателя насоса с поэтапной разработки схемы связей.

В схеме связей автомата, задающей его интерфейс, перечисляются наименования и обозначения входных и выходных воздействий.

Во-первых, рассматриваемый автомат управления пуском и остановом двигателя насоса будет иметь следующие входы и выходы, «соединённые» со входами и выходами контроллера (рис. 5).

Рис. 5. Схема связей автомата со входам и выходами ПЛК

Во-вторых, автомат должен обмениваться сообщениями с верхним уровнем АСУ ТП – получать команды и формировать признаки состояния, которые будут использоваться для построения интерфейса с человеком-оператором.

На верхнем уровне АСУ ТП будут формироваться следующие команды:

  1. Включить двигатель.

  2. Выключить двигатель.

Автомат управления двигателем насоса должен предоставлять в АСУ ТП верхнего уровня следующую информацию.

  1. Возможно ли управление двигателем в дистанционном режиме (положение переключателя SA1«Р»/«А»).

  2. Текущее состояние двигателя (включен/выключен).

  3. Неисправность «Останов двигателя из-за перегрева» (да/нет).

  4. Неисправность «Двигатель не включился» (да/нет).

С учётом входящих и исходящих сообщений для связи с верхним уровнем, у конечного автомата появятся новые входы и выходы (рис. 6).

Рис. 6. Схема связей автомата

Теперь можно попытаться разработать диаграмму переходов разрабатываемого автомата.

Для начала сделаем некоторые допущения, которые позволят несколько упростить разработку диаграммы переходов. Во-первых, будем считать, что автомат функционирует только в режиме «Дистанционное управление», т.е. при iAuto=TRUE, поэтому и рассматривать будем его работу только в режиме дистанционного управления. Во‑вторых, считаем, что команды, приходящие с верхнего уровня АСУ ТП сбрасываются на верхнем уровне сразу после «реакции» автомата.

Начальное состояние – «Стоп». В этом состоянии двигатель не работает, сигналы iMotorOnиiOverHeatсброшены (имеют значениеFALSE). При появлении сигналасMotorOnавтомат переходит в состояние «Запуск двигателя». При этом формируется сигнал для включения двигателя –qMotorOn. При появлении сигналаiMotorOnвыполняется перевод автомата в состояние «Работа», при этом сигналqMotorOnсбрасывается. Переход из состояния «Работа» возможен либо в состояние «Стоп» по командеcMotorOff(через состояние «Останов двигателя»), либо в состояние «Перегрев» по появлению сигналаiOverHeat. Из состояния «Перегрев» в состояние «Останов двигателя» автомат переводится по командеcMotorOff. Таким образом оператор подтверждает, что информация об аварийном останове им воспринята.

Граф переходов конечного автомата управления двигателем насоса приведён на рис. 7. Над каждой стрелкой записывается:

  • условие перехода – логическое выражение, которое должно принять значение «истина» (TRUE), для выполнения перехода;

  • действия над выходами автомата (установить, сбросить), которые выполняются при переходе из одного состояния в другое. Действия записываются в квадратных скобках “[ ]”.

Рис. 7. Диаграмма переходов конечного автомата

На рис. 7 отсутствует ещё одно состояние – неисправность «Двигатель не включился». Переход в это состояние должен происходить из состояния «Запуск двигателя», в случае, если при подаче сигнала на включение двигателя (qMotorOn=TRUE) в течение трёх секунд не появляется сигналiMotorOn. Для того чтобы засечь время, необходимо использовать таймер задержки включения. В соответствии с концепциейSWITCH-технологии таймер располагается «снаружи» автомата. Поэтому для анализа выхода таймера в схему связей автомата нужно добавить ещё один входной сигнал «Превышено время ожидания пуска» –tNotRun(рис. 8). Для запуска таймера может быть добавлен отдельный сигнал, но, в данном случае, будет использоваться сигналqMotorOn.

Окончательный вид диаграммы переходов автомата управления двигателем насоса представлен на рис. 9.

Рис. 8. Схема связей автомата

Рис. 9. Диаграмма переходов автомата управления двигателем насоса.

Теперь, получив полное описание правил функционирования автомата (рис. 8, 9), можно приступать к формальной разработке программы, реализующей этот автомат.

Текст программы представлен ниже. Обратите внимание, что программа реализации автомата вызывается только при появлении сигнала iAuto, а также на то, что функциональный блок, реализующий таймер, вызывается постоянно, за пределами программы реализации автомата. Для хранения номера текущего состояния автомата используется переменнаяStateтипаINT.

var

T1: TON;

end_var

(* Вызов таймера задержки включения *)

T1(IN := qMotorOn, PT := t#3s);

tNotRun := T1.Q;

sAuto := iAuto;