Автор работы: Пользователь скрыл имя, 07 Октября 2013 в 13:05, курсовая работа
Существенное повышение эффективности производства достигается путём создания автоматизированных систем управления технологическими процессами (АСУ ТП) с использованием вычислительных машин (ЭВМ).
Автоматизированные системы управления агрегатами и технологическими процессами строятся на основе управляющих логических устройств и выполняют логические функции. Применяется реализация программного управления последовательностью операций по заданному алгоритму.
Автоматизированные системы управления технологическими процессами и сложными агрегатами характеризуются большим объёмом перерабатываемой информации, сложными алгоритмами управления и высокой скоростью обработки информации.
Включающим тактом называется такт, предшествующий периоду включения данного элемента. Отключающим тактом называется такт, предшествующий периоду отключения данного элемента.
Включающий период состоит из включающего такта и периода включения без отключающего такта. Отключающий период состоит из отключающего такта и периода отключения без включающего такта, (понятие отключающего периода вводится при наличии нескольких периодов включения). Элементы, изменяющие своё состояние во включающем и отключающем тактах рассматриваемого периода включения, называются основными элементами.
Для нахождения функциональных выражений выходных параметров УЛУ используем циклограмму работы управляющего устройства [3]. В данном случае циклограмма состоит из двух включающих периодов для выходных параметров: X, Y и Z. Функциональные выражения составляются для каждого из параметров по первому и второму периоду и далее объединяются.
Основная формула метода циклограмм имеет вид
Проверка реализации циклограммы заключается в проведении следующих проверок.
1-я проверка заключается в анализе того, существует ли записанное ранее условие включения в течение всего включающего периода. Если =const, то условие включения является достаточным. Если изменяет своё состояние в течение включающего периода, то необходимо ввести в схему промежуточный элемент , либо обеспечить самоблокировку
2-я проверка предназначена
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. С учетом этого функциональное выражение для второго цикла
Общее функциональное
На основе полученных функциональных выражений выходных параметров
с помощью системы компьютерного
моделирования электронных
Рис. 8. Функциональная схема УЛУ
Рис. 9. Вид выходных параметров УЛУ
Рис. 10. Таблица включений УЛУ
Рис. 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(
' Y=a*d*(f+b*c);
' Z=e*(p(i)+f(i)*a(i))+f*e*c*(p(
' +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','
Var Sch2,Sch4,Sch5,Sch6,Sch9,
Y,X,X11,Z,i,k,j,c,Symbol:
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,
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);
Информация о работе Проектирование и расчет систем автоматики