Файл: Добролюбов, А. И. Автоматизация проектирования систем управления технологическими машинами.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.10.2024
Просмотров: 73
Скачиваний: 0
Перейдем к изложению метода и алгоритма вычерчи вания схем, заданных в виде булевых функций.
Булева функция кодируется символами. При этом применяются следующие коды (табл. 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
том типа ИТЕКАН п о заданной булевой функции. Время
вычерчивания |
рис. 37 |
составляет 7 |
мин. Время ра |
||||||
ьк |
2к |
гр |
|
|
боты ЭВМ «Минск-22» для |
||||
ЗР |
|
получения входной перфоленты |
|||||||
|
|
|
|
{ У п |
5 мин. |
|
|
|
|
КУ |
|
1К |
{F |
|
|
|
|
|
|
|
|
«_8~ |
3. Вычерчивание схем, |
|
|
||||
1Р ,К ЗР7 !Р ЗР |
спроектированных с помощью ЭВМ |
||||||||
2Р |
|
- щ р г |
|
|
|
|
|
|
|
|
1Р |
ЗР |
|
По булевым выражениям, |
|||||
~ 1 Г |
|
1Г7Т1Г |
|
||||||
W L . |
ip |
5К |
* - ) Г |
T F - |
полученным в результате авто |
||||
У * " 1 * |
- * ■ |
матического |
логического |
син |
|||||
|
|
|
|||||||
ЗР |
IP |
2Р |
|
J F - |
теза, можно |
вычертить |
вруч |
||
^+771 |
« Й |
II |
IS |
ную принципиальную |
электри |
||||
|
IP |
2Р |
|
|
ческую |
схему. Очевидно, |
это |
||
ЗР |
И 19 |
+* |
|
|
ручное |
вычерчивание |
|
резко |
|
!Р |
2Р |
|
|
|
|||||
|
|
|
|
|
снижает |
эффективность |
ис |
||
|
|
|
|
|
пользования ЭВМ, так как на |
||||
Рис. 37. Схема управления, |
оформление |
результатов |
ма |
||||||
вычерченная на ИТЕКАН |
шинного проектирования конст |
||||||||
|
|
|
|
|
руктору |
приходится |
затрачи |
вать значительную часть времени. Поэтому параллельно с разработкой программ синтеза должна осуществляться разработка методов и средств, позволяющих автомати зировать и заключительный этап проектирования схеМЫ ее вычерчивание.
Как следует из гл. 2, схемы управления, синтезиро ванные описанным инженерным методом, состоят из ряда схем параллельно-последовательного типа (класса П). В процессе стыковки этих частей получается единая схе ма класса Н, которая в целом уже не может быть описа на булевыми выражениями. В соответствии с этим при вычерчивании таких схем по программе, описанной в предыдущем параграфе, выполняется последовательная обработка булевых выражений, описывающих отдельные части схемы. Рассмотрим более подробно процесс сты ковки частей схемы.
В аналитическом представлении СУ в виде булевых выражений адреса связей отдельных частей схемы зада ются с помощью вспомогательных переменных. В графи ческом представлении СУ в виде совокупности парал лельно-последовательных схем взаимосвязь отдельных схем указывается с помощью номеров связей (проводов). При получении принципиальной электросхемы по соот-
160