Лабораторная работа №5. Регулирование расхода газа 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа №5. Регулирование расхода газа



 

Цель работы: закрепление навыков организации условных переходов. Написание программы регулирования расхода газа с помощью исполнительного механизма МЭО вращающего заслонку на трубе.

На производстве газ подается под давлением в технологическую установку. Давление в трубе меняется, но требуется поддерживать постоянный расход газа. Давление газа P, после заслонки измеряется датчиком, и данные пересылаются в МК. Расход газа (объем) определяется по формуле V=K*SQRT(P). Здесь K коэффициент, зависящий от свойств газа. Чтобы при понижении давления поддерживать постоянный расход газа Vраб, необходимо приоткрыть заслонку (направление «В») на трубопроводе с помощью исполнительного механизма МЭО. Подача импульса на МЭО длится одну - две секунды. При увеличении давления заслонка прикрывается (направление «М»), уменьшая тем самым подачу газа. Это выполняется подачей разно полярных импульсов на МЭО. Через небольшой промежуток времени измерение давления, и корректировка подачи газа повторяется, тем самым достигается достаточно постоянный расход газа.

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

N2=1+3+5+7+9…Количество слагаемых равно числу N.

Для N=5 получаем N2=1+3+5+7+9=25.

Если задано давление 30, то мы будем накапливать сумму, добавляя слагаемые до тех пор, пока сумма не будет больше 30. То есть целочисленное значение корня равно 6. Допустим K=4, тогда расход газа V=6*4=24. Если был задан расход 20, то заслонку следует слегка закрыть «М». Если был задан расход 28, то заслонку следует слегка приоткрыть «В».

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

Сигнал для прикрытия заслонки будем подавать на МЭО через нулевой разряд PORTC. Сигнал на увеличения открытия заслонки через первый разряд PORTC. Этот фрагмент оформим в виде подпрограммы. При этом используем особенности кодировки латинских букв «В» и «М» в 0 и 1 разрядах для управления вращением МЭО.

Фрагменты программы. РОН для хранения данных показаны на рисунках. Стандартная настройка МК опущена.

; ввод данных в регистры SHAG, DAVLENIE, FAKT_RASKHOD.

movlw D'2'

movwf SHAG; шаг изменения слагаемых.

MOVLW D'14'

MOVWF TREB_RASKHOD; требуемый расход газа.

MOVLW D'8'; первое давление газа.

POVTOR MOVWF DAVLENIE; задаем давление газа.

CLRF NAPRAV_MEO

CLRF FAKT_RASKHOD

CLRF PORTC

CLRF KOREN

CALL SQRT; вычисляем корень с избытком.

MOVF KOL_SLAG, W

MOVWF KOREN; фиксируем корень с избытком.

CALL VYCH_OB’EM; вычисляем объем.

CALL MEO; выполняем управлением МЕО.

MOVLW D'15'; задаем новое давление газа.

GOTO POVTOR; повторяем программу для второго давления газа.

GOTO$

SQRT; подпрограмма вычисления корня

MOVLW D'1'

MOVWF SLAGAEMOE; задаем первое слагаемое равное 1.

MOVWF SUM; сумма также равна 1.

MOVWF KOL_SLAG; количество слагаемых также равно 1.

Sled_slag INCF KOL_SLAG, F; отмечаем увеличение количества слагаемых.

MOVF SLAGAEMOE, W

ADDWF SHAG, W; вычисляем значение очередного слагаемого.

MOVWF SLAGAEMOE; запоминаем новое слагаемое.

ADDWF SUM, W; W= SLAGAEMOE+W

MOVWF SUM; запоминаем новую сумму слагаемых.

; подготовка к следующему циклу

SUBWF DAVLENIE, W;

BTFSC STATUS, C; определяем, что больше DAVLENIE или SUM.

GOTO Sled_slag; только при С=1 повторяем цикл.

RETURN; при C=0 выходим из цикла

VYCH_OB’EM; вычисляем объем расходуемого газа при K=4: V=Koren*4.

MOVF KOREN, W;

MOVWF FAKT_RASKHOD

BCF STATUS, C

RLF FAKT_RASKHOD, F; умножаем на два.

BCF STATUS, C

RLF FAKT_RASKHOD, F; умножаем на два.

RETURN

MEO; Подпрограмма определения направления "B" или "M" вращения МЭО.

MOVF TREB_RASKHOD, W; требуемый расход --> W.

SUBWF FAKT_RASKHOD, W; W= Fakt_Raskhod - Treb_Raskhod.

MOVLW b'01001101'; код буквы "М", уменьшаем открытие заслонки.

BTFSS STATUS, C; C = 1?

MOVLW b'01000010'; при C=0, код буквы "В", приоткрываем заслонку.

MOVWF NAPRAV_MEO; запоминаем символ направления вращения.

ANDLW b'00000011'; маской оставляем только 0 и 1 разряды для МЭО.

MOVWF PORTC; пересылаем импульс управления на МЭО.

RETURN

Timer; подпрограмма Timer не приведена.

END

В таблице 5.1 приведены задания на оценку «отлично».

В таблице 5.2 приведены задания на оценку «хорошо».

Таблица 5.1 – Варианты заданий с дробным коэффициентом.

Вариант Коэффициент К Давление P1 Давление P2 Требуемый расход
  1,33      
  2,33      
  3,33      
  4,33      
  5,33      
  6,33      
  7,33      
  8,33      
  9,33      
  10,33      
П р и м е ч а н и е - Выполнить программу для двух значений давления газа P1 и P2

Таблица 5.2 – Варианты заданий для целого K=4.

Вариант Давление P1 Давление P2 Требуемый расход Вариант Давление P1 Давление P2 Требуемый расход
               
               
               
               
               
П р и м е ч а н и е - Выполнить программу для двух значений давления газа P1 и P2

 

На рисунках 5.1 и 5.2 показаны окна наблюдения при недостаточном и избыточном расходе.

Рисунок 5.1 – Увеличить подачу газа Рисунок 5.2 – Уменьшить подачу

Контрольные вопросы.

1. Назначение подпрограмм.

2. Вызов подпрограммы. Что она передает в главную программу.

3. Где и как записываются подпрограммы?

4. Работа счетчика команд при вызове подпрограммы и ее завершении?

5. Алгоритм возведения целых чисел в квадрат.

6. Как вычисляется приближенное, целочисленное значение корня?

7. Назначение МЭО. Как он работает?

8. Как работает алгоритм подачи импульса напряжения на МЭО?

9. В каких случаях флаг Z равен единице при вычитании?

10. В каких случаях флаг С равен единице при вычитании?

11. Когда флаги Z и С регистра Status одновременно равны нулю?

12. Как выполняется сравнение чисел?

13. Как используются кодировки латинских букв «В» и «М»?



Поделиться:


Последнее изменение этой страницы: 2017-01-28; просмотров: 284; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.199.243 (0.014 с.)