Создание средств системы автоматизации процесса обжига кирпича в туннельной печи (Пояснительная записка дипломного проекта), страница 3

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

Системой предусмотрено соотношение топливо-воздух по давлению в магистрале, подачи воздуха и газа на горение, для чего на трубах установлены измерительные преобразователи давления РС-28/0…6,0 кПА, 4…20 мА, позиции 8-ВР1,  измерительные преобразователи давления РС-28/0…4,0 кПА/PD/М, предел измерений 0…4,0кПА, 4…20 мА, позиции 14-ВР1, 14-ВР2.

Системой предусмотрен контроль давления воздуха на горение,            Системой предусмотрено автоматическое управление розжигом боковых и сводовых горелок, с помощью автомата управления горелкой IFD454-5/1/1 Т позиции 14-A1…14-A5,  сигнал от которых подается на аналоговые входы процессора , формирует  управляемый импульс и с дискретного выхода управляет клапаном подачи газа на горение с одновременным включением свечи зажигания, напряжением 25кВ, с местного щкафа управления А3.

Автоматы управления горелками имеют входные сигналы по управлению электродами розжига, пламени горелки и управление клапанами, а аналоговые сигналы с них, по данным параметрам параметра формируют управляющий сигнал и с дискретного выхода посылает управляющий выход в автомат контроля пламени.

Управление вентиляторами подачи воздуха на горение осуществляется при помощи электродвигателей,18 кВт,1500 об/мин позиции 11-М1, 11-М2, сигнал на которые  поступает от дискретного выхода процессора по заданной программе.

Управление вентиляторами можно осуществить и в ручном режиме за счет переключателя 4G40052-UR214.

5 Программа управления вспомогательным оборудованием

Программа управления для микропроцессора В&R (язык С)

init_osc();                        //Инициализация тактового генератора

Init_port();                      //Инициализация портов

init_interrupt();               //Настройка прерываний

for(;;)

{

ADC_Init(0x80);          //Измерение параметра

ADC_Start();

while(Fl!=1);

ADC_Stop();

a.Par=ADC;

if (a.Par<0x10){P03=0;P06=0;}   //Измеряемый параметр ниже заданного, установился порт знака

else {P03=1;P06=1;}

if (a.Par>0x20)P03=0;               //иначе

}

void ADC_Init(unsigned char chanel)

{

AMX0SL=chanel;

ADC0CF|=ku;

ADC0CN=0x80;

//Работа разрешена * слежение до завершения работы * преобразование нач-ся при AD0BUSY=1

REF0CN=0x08;              //Внутренний источник опорного напряжения

EIE1&=0xFB;                 //Запрет прерываний по завершению работы АЦП

P0MDIN&=~chanelt;

}

void ADC_Start()

{

AD0BUSY=1;

EIE1|=0x04;                    //Разрешение прерываний по завершению работы АЦП

}

void ADC_Stop()

{

stop=0;

while(stop==0);

EIE1&=0xFB;                 //Запрет прерываний по завершению работы АЦП

Fl=0;                    

ADC=0;

}

void ADC_prog() interrupt 8

{

ADC=ADC0;

ADC0CN&=0xDF;

AD0BUSY=1;

Fl=1;

}

void init_osc()       //тактовый генератор

{

OSCICN=0x07;              //Отключение делителя частоты генератора

TMOD=0x01;                           //Выбор 16-ти разрядного режима для Т0

}

void Init_port()     //порт

{

P0MDIN=0xF8;              //P01,P00,P02 аналоговые входы

P0MDOUT=0x38;                    //P03,P04,Р05 на выход

XBR2=0x40;                            //включение кросбара

void init_interrupt() //прерывания

{

EA=1;                                       //Разрешение всех прерываний

PCA0MD=0x00;             // Выключение сторожевого таймера

}

#include "T0_sys.h"

#include "c8051F300.h"

unsigned int col=65536-Q*time/1000/12; //16-ти разрядный режим с делителем 12

int msec,sec;

int i,counter;

//============SFR==============================

sfr SFRPAGE = 0x84;

//=============================================

void T0_int(void) interrupt 1 //Обработчик прерываний от T0

{

PT0=prior;

TH0=col>>8;

TL0=col;

//перезагрузка таймера величиной time

EA=0;   

TR0=0;

//----------//=============================================

//=========Милисекунды=========================

msec++;

//=========Секунды=============================

i++;

if (i==100) {stop=1;

sec++;i=0;}