
книги из ГПНТБ / Добролюбов, А. И. Автоматизация проектирования систем управления технологическими машинами
.pdfзаметных» ошибок, характерных для чертежей, выполня емых вручную.
Трудной проблемой автоматизированного вычерчива ния является процесс приготовления входных данных для автоматического чертежного устройства. Чертежные устройства способны чертить лишь универсальные эле менты чертежей — прямые линии, дуги, буквы, цифры и некоторые другие стандартные знаки. Каждый из этих элементов чертится в ответ па получение чертежным устройством определенной входной команды (или серии команд), записанной на входном носителе, например перфоленте. При этом задача заключается в быстром (автоматическом) изготовлении входной перфоленты, не сущей информацию о чертеже, которая, будучи введен ной в чертежный автомат, предпишет ему в определен ной последовательности чертить элементы, составляю щие чертеж детали машины, сборочный чертеж, схему управления и т. п.
Возможна, конечно, и ручная подготовка входной перфоленты, но это сводит к нулю все преимущества автоматического вычерчивания.
Наиболее трудоемким этапом в решении проблемы автоматического вычерчивания чертежей является созда ние алгоритмов и программ, обеспечивающих получение на ЭВМ входных данных для чертежного автомата, зада ющих чертеж. Эти алгоритмы и программы обычно на зывают математическим обеспечением автоматизирован ных чертежных устройств.
Задачу автоматического вычерчивания можно рас сматривать в двух аспектах: как самостоятельную зада чу и как завершающий этап автоматического проекти рования. Целью автоматизированного вычерчивания как самостоятельного этапа является экономически оправ данное внедрение автоматизированных чертежных уст ройств в конструкторских бюро при наличии обычных («ручных») методов проектирования. В этом случае этап автоматического вычерчивания является конечным эта пом обычного, неавтоматизированного процесса проекти рования.
Целью автоматизированного вычерчивания как этапа автоматического синтеза является стыковка вычерчива ния с этапом конструирования и организация, таким об разом, автоматической системы: проектирование — вы черчивание.
150
Очевидно, что как в первом, так и во втором случаях требуется кодирование чертежа, подлежащего вычерчи ванию, и приготовление входной информации для чер тежного устройства.
В первом случае кодирование чертежа осуществляют вручную, а во втором случае этот процесс проходит ав томатически: этап автоматического синтеза выдает в том или ином виде сведения о полученном чертеже, после чего электронно-вычислительная машина по этим сведе ниям формирует и выдает входной носитель для чертеж ного автомата.
Методы кодирования чертежа и методы приготовле ния по этим кодам входной информации для чертежного устройства должны быть в максимальной степени уни версальными, т. е. пригодными как для ручной, так и для машинной обработки.
Очевидно, что кодирование чертежа для последующе го его вычерчивания автоматом предполагает наличие (в явном или неявном виде) специального языка, т. е. системы определенных символов, знаков, правил и их со четаний, адекватно отображающих определенные эле менты чертежа и позволяющих установить взаимораспо ложение этих элементов. Очевидно, что такой язык дол жен быть доступен для восприятия как человеком, кото рый должен быстро записать на этом языке любой чер теж, так и машиной, которая должна транслировать текст, записанный на этом языке, в чертеж. Эти два глав ных свойства языка (его образность и алгоритмичность) являются противоречивыми и разрабатываемые в насто ящее время языки строятся компромиссно, учитывая эти два свойства.
Переходя к главной теме настоящей главы — автома тическому вычерчиванию релейных схем—отметим, что автоматическое вычерчивание любых схем представляет собой задачу гораздо более простую по сравнению с за дачей вычерчивания машиностроительных чертежей, тре бующих построения проекций, разрезов, общих видов, определения видимых к невидимых элементов чертежа, строгого соблюдения масштабов и размеров, определе ния мест штриховки и т. д.
Однако задача автоматического вычерчивания схем также является весьма сложной, специфичной и мало изученной проблемой.
151
2. ВЫЧЕРЧИВАНИЕ ПАРАЛЛЕЛЬНО-ПОСЛЕДОВАТЕЛЬНЫХ СХЕМ
Чертеж схемы управления представляет собой неко торое множество стандартных графических обозначений аппаратов, определенным образом связанных между со бой проводами (связями). Расположение знаков на чер теже строго не регламентируется, требуется обычно лишь строгое соблюдение связей и обеспечение наглядности чертежа. Последнее качество чертежа определяется та кими его свойствами, как естественное расположение
. - ../■ |
"> |
Ч |
|
|
|
|
J |
\ |
|
3 |
|
|
5 |
6 |
Рис. 33. Схема управле |
Рис. |
34. |
Схема |
связей |
ния, вычерченная в соот |
|
|
узлов |
|
ветствии с ЕСКД |
|
|
|
|
знаков аппаратов, соответствующее |
пути прохождения |
|||
сигналов, минимальная длина |
связей |
(линий) |
между |
знаками аппаратов, минимум пересечений линий схемы, ясность и полнота надписей, одинаковое исполнение оди наковых участков схемы и т. д.
Графическое начертание элементов электросхем оп ределено единой системой конструкторской документа ции (ЕСКД). На рис. 33 изображена простая релейно контактная электрическая схема. Как видно из рисунка, чертеж схемы состоит из стандартных обозначений.ап паратов (под аппаратами в данном случае понимаются такие элементы схемы как контакты кнопок, путевых вы ключателей, контакты и катушки реле, пускателей, элект ромагнитов и т. п.), линий связи, подписей аппаратов1 и номеров узлов (проводов).
При автоматическом вычерчивании удобно на топо логию схемы наложить дополнительные ограничения: принять постоянными расстояния между соседними ап паратами как по горизонтали, так и по вертикали и не применять наклонных соединительных линий. При этом
1 Подписи аппаратов на чертежах, выполненных чертежным ав
томатом, соответствуют принятым обозначениям в АЛГОЛ-програм- мах.
152
чертеж схемы в некоторых случаях может стать менее компактным.
При вычерчивании схем очень важным является вы бор языка, описывающего схему. Авторами приняты два способа описания схем: язык булевых функций и язык двухполюсников. При этом язык булевых функций может быть использован только для описания параллельно-пос ледовательных структур, язык двухполюсников — для описания структур произвольного класса.
На рис. 33 изображена параллельно-последователь ная схема. Выражение (25) является ее записью в виде булевой функции, а в табл. 32 эта схема записана в виде списка двухполюсников:
( к у \/ р \ ) / \ р 2 / \ Р \ \ / р\ /\ п в / \ Э \ . |
(25) |
Здесь KOD2 — «чертежный признак», т. е. код |
чер |
тежного знака аппарата, расположенного между сосед
ними узлами |
I, IN; K.OD3 — подпись (наименование) |
этого аппарата. |
|
Очевидно, |
что информация, содержащаяся в кодах |
KOD2 и K.OD3 может быть опущена при разработке то пологии схемной структуры, а затем, после сформирова ния структуры схемы, использована. Схема, лишенная этой информации, принимает вид, изображенный на рис.
34: это совокупность точек (узлов) |
схемы, |
связанных |
|
между собой вертикальными или горизонтальными |
ли |
||
ниями. При этом горизонталями соединены |
разноимен |
||
ные точки, вертикалями—одноименные. Очевидно, |
что |
||
такая структура может быть условно |
описана на языке |
||
булевых функций выражением |
|
|
|
({х\/ х ) / \ х / \ х \ / х / \ х / \ х ) . |
|
(26) |
где х — обезличенный с целью упрощения записи символ аппарата.
На языке двухполюсников эта структура может быть описана списком пар соседних узлов I и IN.
Для задания такой структуры на плоскости очевидно достаточно указать координаты узлов. Условимся узлы пары соседних узлов изображать на одном горизонталь ном уровне. Тогда пара узлов I, IN может быть охаракте
ризована координатами XI, Y, XIN, |
где |
XI — абсцисса |
узла I, Y— ордината узлов I и |
IN; |
XIN— абсцисса |
узла IN. Таким образом структура, |
изображенная на |
153
рис. 34, может быть задала табл. 33. Расстояния между аппаратами по вертикали и по горизонтали принимаем равными 1. За начало координат принимаем левую ниж нюю точку чертежа.
Т а б л и ц а 32
N A I ш K O D 2 K O D 3
1 |
1 |
2 |
07 |
КУ |
2 |
2 |
3 |
01 |
Р2 |
3 |
3 |
4 |
04 |
Р1 |
4 |
1 |
2 |
01 |
Р1 |
5 |
1 |
5 |
01 |
Р1 |
6 |
5 |
6 |
06 |
ПВ |
7 |
6 |
2 |
13 |
Э1 |
Дополнив эту таблицу столбцами KOD2 и KOD3, оче видно, получим полную таблицу информации о чертеже, по которой можно вычертить и подписать схему.
Автоматическое вычерчивание схем на основе инфор мации табл. 33 предусматривает следующую последова тельность: вначале чертятся знаки аппаратов, дополнен ные, где это нужно, горизонтальными линиями; далее чертятся вертикали, связывающие одноименные узлы, затем подписываются наименования узлов и наименова ния аппаратов.
Главная трудность в решении задачи автоматическо го вычерчивания заключается в получении данных о схе ме в виде табл. 33 на основе исходной информации о схеме, заданной, как уже упоминалось, в виде булевой функции или в виде неупорядоченного списка двухполюс ников.
Т а б л и ц а 33
NA |
1 |
ш |
X I |
Y |
X 1 N |
1 |
1 |
3 |
0 |
2 |
1 |
2 |
3 |
4 |
1 |
2 |
2 |
3 |
4 |
2 |
2 |
2 |
3 |
4 |
1 |
3 |
0 |
1 |
1 |
5 |
1 |
5 |
0 |
0 |
1 |
6 |
5 |
6 |
1 |
0 |
2 |
7 |
6 |
2 |
2 |
0 |
3 |
154
Перейдем к изложению метода и алгоритма вычерчи вания схем, заданных в виде булевых функций.
Булева функция кодируется символами. При этом применяются следующие коды (табл. 34).
|
|
Т а б л и ц а 34 |
Символ |
Ко 1 |
Наименование |
X |
2 |
Символ аппарата |
л |
4. |
Конъюнкция |
V |
5 |
Дизъюнкция |
( |
6 |
Открытая скобка |
) |
7 |
Закрытая скобка |
Массив кодов символов булевой функции (обознача ется KOD1) вводится в машину и является единственной исходной информацией на вычерчивание схемы. Напри мер, исходный массив KOD1 для вычерчивания булевой функции (26) имеет вид
6 6 2 5 2 7 4 2 4 2 5 2 4 2 4 2 7
По этой информации ЭВМ должна построить табл. 33. Булева функция может быть представлена как некая итеративная структура, состоящая из повторяющихся конструкций, вложенных друг в друга. Введем следую
щие определения:
<переменная> : :=х; <одночлен> : :=<переменная>| <сумма> | <одночлен>;
<сумма>: :=<одночлен> \/<одночлен>| <сумма>У<одночлен>.
Эти определения сделаны на языке металингвистиче ских формул [2]. Здесь знак :: = означает «равно по опре делению». Знак | означает «или», знак V — «за которым следует». В скобки < > заключаются любые после довательности символов.
Согласно этому определению выражение (26) делит ся на составляющие согласно рис. 35, на котором выра жение в овале рассматривается как сумма, выражения в прямоугольниках как произведения, х — переменная. Та ким образом, исходная функция рассматривается как
155
сумма, состоящая из двух слагаемых — произведений. Первое из этих произведений содержит три сомножите ля, первый из которых является суммой, а два вторых —
переменные и т. д. Заметим, что каждое |
из |
этих выра |
||||||
жений (т. е. |
сумма, произведение |
или |
переменная) в |
|||||
графической |
интерпретации |
представляет собой двухпо |
||||||
|
|
|
люсник, |
заключенный меж |
||||
|
|
|
ду разноименными |
узлами. |
||||
|
|
|
Обращаясь |
к |
графиче |
|||
|
|
|
ским схемам, соответствую |
|||||
|
|
|
щим этим булевым выраже |
|||||
|
|
|
ниям, |
определим |
правила |
|||
|
|
|
присвоения |
номеров узлов |
||||
|
|
|
в схеме, записанной в виде |
|||||
|
|
|
булевой функции. |
Эти пра |
||||
|
|
|
вила довольно просты: |
па |
||||
Рис. |
35. Структура Рулевого |
раллельные |
ветви схем |
(им |
||||
соответствуют |
одночлены, |
|||||||
|
выражения |
разделенные |
знаком V ) |
за |
||||
|
|
|
ключаются |
между |
попарно |
|||
одноименными узлами; последовательно |
расположенные |
|||||||
ветви |
(им соответствуют одночлены, разделенные |
зна |
ком Д ) располагаются между попарно разноименными узлами.
Например, на рис. 34 одночлены ( х \ / х ) / \ х / \ х и х / \ х / \ х записываются между одноименными узлами (ле
вый узел у каждого одночлена |
/, |
правый |
узел 2) как |
|||||
параллельные ветви. Одночлены |
|
(х \ / х ), |
х, х должны |
|||||
быть заключены между разноименными |
узлами. |
Про |
||||||
ставляем недостающие узлы в порядке |
возрастания их |
|||||||
номеров, |
т. |
е. проставляем |
узлы |
|
3 и 4 для одночленов |
|||
(х\/х), х, |
х. |
Одночленам х / \ х / \ х |
ставим номера средних |
|||||
узлов 5 и 6. |
|
|
|
|
|
|
|
|
На рис. |
36 поясняются |
правила |
расстановки |
узлов |
для более сложной схемы, структура которой описывает ся булевым выражением ( ( х / \ ( х \ / х / \ х ) \ / х \ / х ) / \ х \ /
Д ( х \ / х / \ х / \ х ) \ } х \ / ( х /\ (х\/х) /\х)).
Присвоение узлов — это первый этап обработки буле- р о й функции для последующего ее вычерчивания. Вто рой этап — вычисление координат узлов, которые для каждой пары узлов определяются триадой XI, У, XIN.
Рассмотрим правила, заложенные в алгоритм вычис ления координат узлов.
156
Булева функция, описывающая схему, в общем случае является суммой одночленов. Каждый одночлен соответ ствует некоторой «чертежной единице» (двухполюснику) схемы. Если одночлены связаны между собой знаком произведения, то соответствующие им элементы чертежа должны располагаться на чертеже последовательно друг за другом в горизонтальном направлении. Если одночле ны связаны между собой знаком суммы, то соответству ющие им двухполюсники должны располагаться парал лельно друг другу (друг под другом в порядке записи
|
_цЖУ Р 2 ■ |
|
Р З |
г \Р > |
|
2 |
\5 р ) |
ПВ1 J 11 . « |
U |
||
. |
Ч г т ° ^ ■ |
2 К У PU г л Э 2 |
|||
Я4 |
|
|
|
|
|
'—II---------------- |
|
|
|
||
|
П В ! |
|
|
|
|
, — ----------------1 |
|
|
|||
|
Р З |
|
|
|
Г1Р 2 |
|
3 |
2 К У |
|
|
П У /и |
|
|
Я/ |
w |
|
U |
1 г
Рис. 36. Схема управление, вычерчен ная по информационной таблице
одночленов в исходной булевой функции). Одночлены и соответствующие им двухполюсники могут быть просты ми (один аппарат) либо сложными (несколько аппара тов). Для построения цепей, состоящих из двухполюсни ков, нужно, очевидно, знать размеры последних на схе ме. Длиной L двухполюсника назовем горизонтальный размер соответствующего ему изображения на чертеже. Высотой Н двухполюсника назовем соответствующий размер по вертикали. При принятом нами условии, что горизонтальный размер одного чертежного знака аппа рата равен 1 и расстояние по вертикали между соседни ми горизонтальными линиями чертежа также равно 1, размеры L и Н каждого двухполюсника равны соответст венно максимальному числу последовательно включен ных аппаратов и максимальному числу параллельных ветвей. Так для схемы, приведенной на рис. 34, 1 = 3,
Н = 2.
Работу алгоритма вычисления координат узлов мож но кратко описать следующим образом.
157
Вначале анализируется все булевое выражение, рас сматриваемое как одночлен, вычисляются его размеры L и Н и тем самым определяются общие габаритные раз меры чертежа схемы. Далее последовательно анализиру ются одночлены нулевого уровня (связанные между со бой знаком V)- Определяются размеры двухполюсников, соответствующих каждому из одночленов этого уровня.
Пусть первый двухполюсник имеет габаритные разме ры L0', Н0'. Э т о значит, что координаты его полюсов на чертеже будут: Х/ = О, Y = H0'\ XIN = L0'. Если этот двух полюсник оказался простым, то переходим к вычислению координат второго двухполюсника этого уровня; если двухполюсник сложный, то продолжаем анализ до рас членения его на простые двухполюсники и только тогда переходим к анализу следующего двухполюсника нуле вого уровня.
Если длины двухполюсников соответствующих парал лельных ветвей одного уровня различны, дополняем их горизонтальными линиями («хвостами») до самого длин ного двухполюсника этого уровня. Этим обеспечивается ортогональность схемы, т. е. отсутствие в ней наклонных линий.
Процесс присвоения координат узлам двухполюсни ков становится, таким образом, итеративным, повторя-
.ющимся на всех уровнях, что позволяет построить про грамму присвоения координат по регулярной схеме.
Программа присвоения узлов и координат и програм ма вычерчивания схемы написаны на языке АЛГОЛ-60. Характерной чертой этих программ является многократ ное использование в них отдельных процедур. Использо вание процедур упрощает саму программу, делает ее компактной.
В программе применяются следующие процедуры. «Проходка суммы», «Проходка произведения», «Нахож дение L и Я», «Нахождение правой скобки».
Поясним смысл этих процедур, не вдаваясь в подроб ности их структуры.
Все эти процедуры оперируют с символами, взятыми из массива KOD1, который представляет собой закодиро ванную исходную булеву функцию. Процедура «Проход ка суммы» обрабатывает некоторую часть массива KOD1 (или весь этот массив), представляющую собой коды не которой суммы одночленов. Задачей этой процедуры яв ляется нахождение числа слагаемых (одночленов в сум-
158
ме) и нахождение границ каждого из найденных слагае
мых.
Аналогичные задачи применительно к произведению одночленов решает процедура «Проходка произведения». Эта процедура находит число сомножителей — одночле нов следующего уровня, входящих в заданное произведе ние, и определяет границы каждого из них.
С помощью процедуры «Нахождение L и Н» опреде ляют габаритные размеры чертежа, соответствующего анализируемому выражению.
Процедура «Нахождение правой скобки» крайне про ста: по данной левой скобке анализируемого булева вы ражения с помощью этой процедуры находят соответст вующую ей правую скобку.
Использование вышеописанных процедур позволяет построить программу получения таблицы узлов и их ко ординат, необходимых для вычерчивания схемы по дан ной булевой функции любой сложности.
Программа имеет итеративную структуру, рассчитан ную на п уровней (вложений) булевой функции. В ИТК АН БССР имеется программа на 16 уровней, что удов летворяет требованию практически всех встречающихся схем. При необходимости алгоритм можно легко расши рить на любое число уровней.
Далее результаты, полученные этой программой, до полняются данными KOD2 и KOD3 и становятся исход ным материалом для программы, формирующей чертеж и выдающей входную перфоленту для чертежного ав томата.
Формирование чертежа по таблице информации (табл. 33, дополненные KOD2 и KOD3) заключается в размещении стандартных знаков аппаратов в соответст вующих местах чертежа и в соединении этих знаков го ризонтальными и вертикальными линиями.
Информация о стандартных знаках чертежа представ лена в памяти машины в виде постоянных массивов. Про грамма формирования входного носителя для чертежного устройства обращается к нужным массивам знаков, вы водит их на носитель вместе с формируемой информа цией о связях аппаратов друг с другом и о соответству ющих подписях узлов и аппаратов.
На рис. 37 изображен чертеж схемы параллельно-по следовательного типа, вычерченный чертежным автома-
159