Проектирование и расчет систем автоматики
Министерство общего и профессионального образования
Российской Федерации
Санкт-Петербургский
(технический университет)
КУРСОВОЙ ПРОЕКТ
По дисциплине Проектирование и расчет систем
технологической автоматики
______________________________
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Тема: Проектирование и расчет систем автоматики
______________________________
Автор: студент гр. ЭР-97 з.о. _____________ / Фишова М. А./
ОЦЕНКА: ___________________
Дата: __________________________
ПРОВЕРИЛ
Руководитель проекта ___доцент__________________ /___ доц. Маларев В.И.___/
Санкт-Петербург
2002
Министерство общего и профессионального образования
Российской Федерации
Санкт-Петербургский государственный горный институт им. Г. В. Плеханова
(технический университет)
Заведующий кафедрой
‘’____’’
Кафедра автоматизации производственных процессов
КУРСОВОЙ ПРОЕКТ
По дисциплине____
( наименование учебной дисциплины согласно учебному плану )
ЗАДАНИЕ
Студентке группы ЭР-97
Фишовой М. А.
1. Тема работы
Проектирование и расчёт
2. Исходные данные к
работе Таблица
включений
______________________________
3. Содержание пояснительной
записки. Определение функциональных выражений
для выходных параметров УЛУ, программная
реализация УЛУ. ______________________________
4.Перечень графического
материала ______________________________
5. Срок сдачи законченной работы: _______________________
Руководитель работы. Доцент
Дата выдачи задания: ____________________________
Аннотация
Курсовой проект выполнен в процессе изучения дисциплины ”Проектирование и расчёт систем автоматики” и включает в себя 29 страниц, 11 рисунков и 2 графических листа.
В работе построены циклограммы управляющего логического устройства (УЛУ) системы автоматики; отысканы функциональные выражения для выходных параметров управляющего логического устройства с учётом проверок реализации циклограммы.
В конце работы представлена реализация проектируемого управляющего логического устройства программным способом. Разработан алгоритм работы управляющего логического устройства, составлена блок-схема. Приведена отлаженная программа реализации управляющего логического устройства, написанная на языке программирования высокого уровня Borland Pascal.
Рассмотренная в курсовом проекте методика может быть использована при разработке реальных цифровых систем технологической автоматики.
Anataciya
Course project is executed in the process of studying discipline "Designing and calculation of systems of automation" and comprises of itself 29 pages, 11 drawings and 2 graphic sheets.
Work is denoted building of cyclogram of controlling logical device (CLD) automation systems; the finding the functional expressions for output parameters of controlling logical device with the account of checking a realization of cyclogram.
At the end of work presented realization designed controlling logical device by the programme way. Designed algorithm of work of controlling logical device, formed block diagram. Brought debugged program to realization of controlling logical device, written on programming language of the high level Borland Pascal.
Considered in the course project a strategy can be used at the development of real numerical technological automation systems.
Содержание
Введение
В настоящее время развитие промышленного
производства характеризуется непрерывным
укрупнением и усложнением
Существенное повышение
Автоматизированные системы
Автоматизированные системы
Представленный курсовой проект посвящён разработке УЛУ с использованием программного обеспечения.
Основы алгебры логики.
Основы алгебры логики были заложены в середине XIX века трудами английского математика Дж. Буля, по имени которого она называется также булевой алгеброй [1]. Ясное понимание принципов, лежащих в её основе, исключительно важно для овладения формальными методами проектирования цифровых систем. Начало использованию алгебры логики для синтеза переключательных (релейных) схем было положено в 1938 г. работами американского учёного К. Шеннона.
В алгебре логики рассматриваются переменные, которые могут принимать только два значения – 0 и 1. Переменные обозначаются латинскими буквами x, y, z ... в алгебре логики определены отношение эквивалентностей (=) и три операции: дизъюнкция (операция ИЛИ), обозначаемая +, конъюнкция (операция И), обозначаемая знаком & или точкой (×), и отрицание (инверсия, операция НЕ), обозначаемое чертой над переменными или над элементами 0 и 1.
Теоремы алгебры логики:
идемпотентные законы
x+x=x,
x×x=x;
коммутативные законы
x+y=y+x,
x×y=y×x;
ассоциативные законы
(x+y)+z=x+(y+z),
(x×y)×z=x×(y×z);
дистрибутивные законы
x×(y+z)=x×y+x×z,
x+y×z=(x+y)×(x+z);
законы отрицания
законы двойственности (теоремы де Моргана)
закон двойного отрицания
законы поглощения (абсорбция)
операции склеивания
операции обобщённого
Теоремы записаны парами, причём каждая из теорем пары двойственна другой, так как из одной теоремы пары можно получить другую на основании принципа двойственности, т.е. путём взаимной замены операций дизъюнкции и конъюнкции, а также элементов 0 и 1, если они имеются.
2. Синтез управляющих логических устройств
на основе циклограмм.
Метод структурного синтеза на основе циклограмм является развитием известного в инженерной практике метода синтеза на основе таблиц включения [2]. При проектировании устройств управления механизмами, работающими циклически, метод записи условий их работы посредством циклограмм имеет преимущество наглядности, а поэтому рекомендуется к использованию.
Циклограмма – это
графическое изображение
Наличие сигнала изображается на циклограмме отрезком горизонтальной прямой. Толстой линией обозначаются сигналы входных и выходных элементов, тонкой – дополнительных промежуточных элементов, пунктиром – условное включение элемента. Условное включение элемента соответствует условному состоянию, т.е. включенное или выключенное состояние этого элемента в данный период не оказывает влияния на состояние выходных элементов устройства.
Слева от отрезка,
отражающего работу элемента, на границе
циклограммы проставляется
Воздействие одного элемента на другой изображается на циклограмме стрелкой, указывающей направление воздействия.
В циклограмме время не оценивается количественно, поэтому она выполняется без масштаба. Отмечаются лишь факт срабатывания элемента, факт наличия или отсутствия сигнала. При наличии специального элемента задержки его сигнал на циклограмме обозначается буквой Т, а время, по истечении которого он появляется или исчезает, - буквой t.
Тактами называются периоды, в течении которых в схеме не изменяется состояние не одного из входных, промежуточных или выходных сигналов. Каждое изменение состояния одного или одновременно нескольких элементов является началом нового такта.
Периодом включения элемента называется непрерывный ряд тактов, в течение которого этот элемент находится во включенном состоянии. Периодом отключения элемента называется непрерывный ряд тактов, в течение которого этот элемент находится в отключенном состоянии. Период включения элемента обозначается чертой. В периоде отключения элемента черта на циклограмме отсутствует.
Включающим тактом называется такт, предшествующий периоду включения данного элемента. Отключающим тактом называется такт, предшествующий периоду отключения данного элемента.
Включающий период состоит из включающего такта и периода включения без отключающего такта. Отключающий период состоит из отключающего такта и периода отключения без включающего такта, (понятие отключающего периода вводится при наличии нескольких периодов включения). Элементы, изменяющие своё состояние во включающем и отключающем тактах рассматриваемого периода включения, называются основными элементами.
Определение функциональных выражений для выходных параметров УЛУ.
Для нахождения функциональных выражений выходных параметров УЛУ используем циклограмму работы управляющего устройства [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. Таблица включений УЛУ
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(
' 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);