Проектирование и расчет систем автоматики

Автор работы: Пользователь скрыл имя, 07 Октября 2013 в 13:05, курсовая работа

Краткое описание

Существенное повышение эффективности производства достигается путём создания автоматизированных систем управления технологическими процессами (АСУ ТП) с использованием вычислительных машин (ЭВМ).
Автоматизированные системы управления агрегатами и технологическими процессами строятся на основе управляющих логических устройств и выполняют логические функции. Применяется реализация программного управления последовательностью операций по заданному алгоритму.
Автоматизированные системы управления технологическими процессами и сложными агрегатами характеризуются большим объёмом перерабатываемой информации, сложными алгоритмами управления и высокой скоростью обработки информации.

Прикрепленные файлы: 1 файл

автоматизация произ процессов (Маларев).doc

— 4.09 Мб (Скачать документ)

Включающим тактом называется такт, предшествующий периоду  включения данного элемента. Отключающим  тактом называется такт, предшествующий периоду отключения данного элемента.

Включающий период состоит из включающего такта  и периода включения без отключающего такта. Отключающий период состоит из отключающего такта и периода отключения без включающего такта, (понятие отключающего периода вводится при наличии нескольких периодов включения). Элементы, изменяющие своё состояние во включающем и отключающем тактах рассматриваемого периода включения, называются основными элементами.

 

  1. Определение функциональных выражений для выходных параметров УЛУ.

 

Для нахождения функциональных выражений  выходных параметров УЛУ используем циклограмму работы управляющего устройства [3]. В данном случае циклограмма состоит из двух включающих периодов для выходных параметров: X, Y и Z. Функциональные выражения составляются для каждого из параметров по первому и второму периоду и далее объединяются.   

Основная формула метода циклограмм имеет вид

.

Проверка реализации циклограммы  заключается в проведении следующих  проверок.

1-я проверка заключается в  анализе того, существует ли записанное  ранее условие включения  в течение всего включающего периода. Если =const, то условие включения является достаточным. Если изменяет своё состояние в течение включающего периода, то необходимо ввести в схему промежуточный элемент , либо обеспечить самоблокировку

.

2-я проверка предназначена для  выявления того, существует ли  записанное ранее условие отключения  в течение всего периода включения. Если  =const, то условие отключения для данного периода является достаточным. если изменяет своё состояние, то необходимо ввести в схему промежуточный элемент

.

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

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

4-я проверка заключается в  выяснении, влияет ли значение  переменной в первом цикле на её значение во втором цикле [4]. Проверка проводится при составленной формуле  выходной   переменной для всех циклов. Выражение имеет вид

Если в каком либо из циклов для  данной выходной переменной не выполняются 1-ое и 2-ое условия, то выражение для неё в данном цикле записывается в виде

После того,  как проведены все  проверки, для каждого из выходных элементов записывается формула  для всех циклов

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

Таблица включений

 

Такты

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

A

1

1

1

0

0

0

1

1

1

0

0

0

1

1

0

B

0

0

0

1

1

1

0

0

0

1

1

1

0

0

0

C

1

1

1

1

1

1

0

0

0

1

1

1

1

1

1

D

0

1

1

1

1

1

0

0

0

1

1

1

1

0

0

E

1

1

0

0

0

0

1

1

0

0

0

0

1

1

0

F

0

0

1

1

0

0

1

1

0

0

1

1

0

0

0

X

0

1

1

1

1

0

0

1

1

1

1

1

1

1

0

Y

0

0

1

1

1

1

1

0

0

0

1

1

1

1

0

Z

0

0

0

0

1

1

1

0

0

0

1

1

1

0

0


 

Циклограмма работы рассматриваемого УЛУ показана на рис. 1.

Рис. 1. Циклограмма функционирования УЛУ

Получим функциональное выражение  для выходного параметра X.

1-й цикл.

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

.

2-й цикл.

В течение выключающего периода  второго цикла изменяют своё состояние  включающие входные сигналы  a, b и d. С учетом этого функциональное выражение для второго цикла будет иметь вид

Общее функциональное выражение для  выходного сигнала X с учетом 4-ой проверки

Получим функциональное выражение  для выходного параметра Y.

1-й цикл.

Для первого цикла проведение 1-й и 2-й проверок не требуется, так как включающие и отключающие входные сигналы не изменяют своё состояние в течение периода включения. Функциональное выражение для первого цикла будет иметь вид

2-й цикл.

Во втором цикле проведение проверок так же не требуется

Общее функциональное выражение для  выходного сигнала Y

Получим функциональное выражение  для выходного параметра Z.

1-й цикл.

В течение выключающего периода первого цикла изменяют своё состояние включающие входные сигналы a и f. С учетом этого функциональное выражение для первого цикла будет иметь вид

2-й цикл.

В течение выключающего периода  второго цикла изменяют своё состояние включающие входные сигналы a, b и d. С учетом этого функциональное выражение для второго цикла

            Общее функциональное выражение  для выходного сигнала Z с учетом 4-ой проверки

 

 

 

 

 

 

 

 

 

 

 

  1. Функциональная схема УЛУ.

 

На основе полученных функциональных выражений выходных параметров

с помощью системы компьютерного  моделирования электронных устройств  разрабатываем функциональную схему УЛУ и проверяем её работоспособность. Ниже представлены функциональные схемы для выходных параметров X, Y и Z и полная функциональная схема с моделями циклограмм для выходных параметров.


Рис. 8. Функциональная схема УЛУ

 

 

 

 


 

Рис. 9. Вид выходных параметров УЛУ


 

Рис. 10. Таблица включений  УЛУ

5. Программная реализация УЛУ

Рис. 11. Блок-схема алгоритма работы УЛУ

На рис. 11. представлена блок-схема  алгоритма работы УЛУ, используемая при написании программы на языке  TurboPascal.

Ниже представлен  текст программы, рассчитывающей значения выходных параметров УЛУ 

Program ULU;

Uses Crt, Dos, Graph;

      {-------------------------------------------------------}

      Procedure Beg(Sch2: integer);

Var   Sch,Sch1: integer;

Const ZAD=900; ZAD1=120; ZAD2=9000; ZAD3=300;

      MASS: array [0..13] of string[2]=(' ','A','R','E',

      ' ','Y','O','U',' ','R','E','A','D','Y');

      MASS1: array [0..5] of string[21]=(' ',

      'Crazy Huckers Company','   P R E S E N T S   ',

      '      November 8     ',

      '   Espessially For   ','      MALAREV V.I.   ');

Label Lab,Lab1,Lab2;

begin clrscr; textMode(1); Delay(6000); for Sch:=0 to 5 do

begin Sch:=Sch+1;

gotoxy((80-58) div 2,12); TextColor(0); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(8); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(7); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(15); Write(MASS1[Sch]); Delay(ZAD);

                          Delay(ZAD2);

gotoxy((80-58) div 2,12); TextColor(15); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(7); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(8); Write(MASS1[Sch]); Delay(ZAD);

clrscr; gotoxy((80-58) div 2,12); TextColor(0); Write(MASS1[Sch]); Delay(ZAD);

                           Delay(ZAD2);

Sch:=Sch-1; if Sch=4 then goto Lab; end; Lab: Delay(ZAD2);

begin for Sch2:=0 to 13 do for Sch1:=14 to 69 do  begin

Lab2: if Sch2=13 then goto Lab1; Sch2:=Sch2+1;

Sch1:=Sch1+1; if Sch2=4 then begin

gotoxy(Sch1,12); TextColor(0); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(8); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(7); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(15); Write(MASS[Sch2]); Delay(ZAD1);

Delay(ZAD3); end else begin if Sch2=8 then begin

gotoxy(Sch1,12); TextColor(0); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(8); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(7); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(15); Write(MASS[Sch2]); Delay(ZAD1);

Delay(ZAD3); end else Sound(26);

gotoxy(Sch1,12); TextColor(0); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(8); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(7); Write(MASS[Sch2]); Delay(ZAD1);

gotoxy(Sch1,12); TextColor(15); Write(MASS[Sch2]);

NoSound; Delay(ZAD1+ZAD3); end; goto Lab2; end; end;

Lab1: textMode(3); end;

      {-------------------------------------------------------}

     Procedure tochka(Sch5: integer);

Var I1,J1: integer;

Label G;

Const ZAD5=100;

     MASS3: array [0..3] of string [1]=('/','-','\','|');

begin for I1:=0 to 300 do for J1:=0 to 4 do

begin I1:=I1+1; J1:=J1+1; gotoxy(30,12); Write(MASS3[J1-1]);

gotoxy(30,12); gotoxy(50,12); Write(MASS3[J1-1]);

gotoxy(50,12); gotoxy(40,12); Write(MASS3[J1-1]);

gotoxy(40,12); gotoxy(35,12); Write(MASS3[J1-1]);

gotoxy(35,12); gotoxy(45,12); Write(MASS3[J1-1]);

gotoxy(45,12); Delay(ZAD5); if J1=3 then J1:=0;

if I1=299 then goto G; end; G: end;

      {-------------------------------------------------------}

      Procedure End1(Sch6: integer);

Var   Sch7,Sch8: integer;

Const MASS4: array [0..6] of string[21]=(' ',

      '       ESCAPE.       ');

Label Lab6,Lab7;

begin clrscr; textMode(1); Delay(6000);

for Sch8:=0 to 6 do for Sch7:=5 to 15 do

begin Lab6: Sch8:=Sch8+1; Sch7:=Sch7+2;

gotoxy((80-58) div 2,Sch7); TextColor(0); Write(MASS4[Sch8]); Delay(900);

gotoxy((80-58) div 2,Sch7); TextColor(8); Write(MASS4[Sch8]); Delay(900);

gotoxy((80-58) div 2,Sch7); TextColor(7); Write(MASS4[Sch8]); Delay(900);

gotoxy((80-58) div 2,Sch7); TextColor(15); Write(MASS4[Sch8]); Delay(900);

Delay(4500); if Sch8=6 then goto Lab7; goto Lab6; end;

Lab7: textMode(3); end;

      {-------------------------------------------------------}

      Procedure End2(Sch9: integer);

Const Text='       THE END       ';

begin clrscr; textMode(1); Delay(6000); begin

gotoxy((80-58) div 2,12); TextColor(0); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(8); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(7); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(15); Write(Text); Delay(900);

                          Delay(20000);

gotoxy((80-58) div 2,12); TextColor(15); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(7); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(8); Write(Text); Delay(900);

gotoxy((80-58) div 2,12); TextColor(0); Write(Text); Delay(900);

Delay(5000); end; textMode(3); end;

      {-------------------------------------------------------}

      Procedure Begin1(Sch10: integer);

Var   Sch11,Sch12: integer;

Const

      MASS5: array [0..9] of string[37]=(' ',

      ' X=p*(c*e+x*(p(i)+b*c))+             ',

      ' +p(i)*c*e*f*(p(i)+a(i)*b(i)*d(i));  ',

     ' Y=a*d*(f+b*c);                      ',

      ' Z=e*(p(i)+f(i)*a(i))+f*e*c*(p(i)+   ',

      ' +a(i)*b(i)*d(i))                    ');

Label Lab8,Lab9;

begin clrscr; textMode(1); Delay(6000);

for Sch12:=0 to 9 do for Sch11:=1 to 19 do

begin Lab8: Sch12:=Sch12+1; Sch11:=Sch11+2;

gotoxy(2,Sch11); TextColor(0); Write(MASS5[Sch12]); Delay(900);

gotoxy(2,Sch11); TextColor(8); Write(MASS5[Sch12]); Delay(900);

gotoxy(2,Sch11); TextColor(7); Write(MASS5[Sch12]); Delay(900);

gotoxy(2,Sch11); TextColor(15); Write(MASS5[Sch12]); Delay(900);

Delay(9000);if Sch12=9 then goto Lab9; goto Lab8; end;

Lab9: delay(9000); textMode(3); readkey; end;

      {-------------------------------------------------------}

Const

     LU=#201; LD=#200; RU=#187; RD=#188; HT=#205;

     H=#196; VT=#186; V=#179; Cross=#197; CrossT=#206;

     CrossTT=#215; VD=#209; VU=#207; VUT=#202;

     VR=#199; VL=#182; VRT=#204; VLT=#185; X1=10;

     X2=68; Y1=1; Y2=25; X3=24; X4=66; Y3=1; Y4=3;

     Txt1='’ Євл'; Txt2='a'; Txt3='b'; Txt4='c';

     Txt5='d'; Txt6='e'; Txt7='f'; Txt8='X'; Txt9='Y';

     Txt10='Z';

     a1: array [0..9] of string [1]=(' ','a','b',

     'c','d','e','f','X','Y','Z');

     a2: array [0..15] of string [2]=('ь','1',

     '2','3','4','5','6','7','8','9','10','11','12','13','14','15');

Var Sch2,Sch4,Sch5,Sch6,Sch9,Sch10: integer;

    Y,X,X11,Z,i,k,j,c,Symbol:integer;

    X5,Y5,X6,Y6,Sch1,Sch12: integer;

    Mass5: array [1..9,1..15] of boolean;

    X12: array [0..15] of boolean;

    Y12,Z12: array [1..16] of boolean;

Label U,U1,Lab11,Lab12,Lab13,Lab14,Lab15,Lab16,Lab17,Lab18;

begin

clrscr;

Tochka(Sch5);

Beg(Sch2);

Begin1(Sch10);

{-----------------------------------------------------------------------}

     begin

     window(X1,Y1,X2,Y2); gotoxy(X1+4,Y1); Write(LU);

     for i:=1 to 45 do

     if i<> 45 then begin Write(HT); end;

     Write(RU); gotoxy(X1+4,WhereY); Write(VT);

     gotoxy(X2-X1+1,whereY); Write(VT); gotoxy(X1,WhereY);

Информация о работе Проектирование и расчет систем автоматики