книги из ГПНТБ / Митрофанов, С. П. Автоматизация технологической подготовки серийного производства
.pdfрис. 34. Выход из цикла можно осуществлять по разным условиям, причем из любого места цикла.
В алгоритмах может быть большое число циклов, причем многие циклы находятся внутри других. Основным условием правильного функционирования программы, реализующей алгоритм, в котором есть циклы, является обязательность вхождения в цикл только через «возобновление», т. е. необходимо, чтобы циклы не пересе кались. При использовании условных обозначений алгоритм представляет собой строго заданную последовательность арифме тических и логический действий над заданными числами и вели чинами, приводящую к решению задачи.
В системах АПТ требуется осуществить по разработанному ал горитму переход от массивов, содержащих информацию о деталях, к массивам с описанием выходной информации. После разработки микросхем нужно сравнить их и выделить одинаковые участки с целью разработки унифицированных микросхем, которые будем
Рис. 32. Графическая микросхема, записанная с использованием условных обозначений и символов
203
называть формализованными процедурами. Информация в них обрабатывается независимо оттого, где эта процедура применяется. После разработки процедур проводят корректирование микросхем. В тех местах, где можно использовать формализованную проце дуру, наносят символ «подпрограмма», внутри которого записы вают номер, входные и выходные параметры процедуры. Например,
|
Процедура |
ПОИСК В МАССИВЕ |
|
FI (Т , 5, N, А \ 1 , 1 1, R\ l \ ) , |
|
где F1 — обозначение номера процедуры; Т — тип поиска; 5 — |
||
сравниваемая величина; N |
— количество столбцов в массиве А; |
|
А | 1, |
1 | — наименование (идентификатор) первого элемента мас |
|
сива, |
в котором ведут поиск; R | 1| — идентификатор первого эле |
|
мента массива с результатами поиска. Для выполнения процедуры переменным Т, S, N должны быть присвоены числовые значения, например Т = 2; 5 '= С| 121; N = 3; Т = 3 означает, что необ ходимо осуществить поиск в первом столбце поискового массива (в данном случае это массив А). Его проводят по совпадению зна чения переменной S со значением элементов в первом столбце поискового массива. N = 3 означает, что для той строки, в которой
выполняется условие 5 |
= |
А | /, 11, |
необходимо сделать вычисле |
ния R | 1 | = А | /, 1\, R |
\2\ |
= А | /, |
2\, R\3\ = А\1, 3 1, т. е. три |
элемента из строки массива А занести в массив результатов, т. е. в массив R.
У |
|
Рис. 33. Каноническая схема алгоритма для |
Вход |
проведения циклических расчетов |
|
|
Воооднфение
Рис. 34. Организация цикла, когда необходимо повторить вычисления п раз (i — переменная, по которой организован цикл)
204
Разработка микросхемы заканчивается ручным просчетом по контрольным примерам и необходимым корректированием в ал горитме. При контрольном ручном просчете по алгоритму необ ходимо тщательно фиксировать все промежуточные результаты, так как они понадобятся для отладки программы по тем же кон трольным примерам. Завершением разработки технологического алгоритма является его оформление в соответствии со стандар тами ЕСТПП.
Сложность алгоритмов АПТ вызвана наличием большого числа логических условий, т. е. сложностью логики технологических процессов.
Поэтому в настоящее время наметился ряд приемов, позволяю щих уменьшить трудоемкость создания алгоритмов и внесения в них изменений. Главными из них являются использование стандартных процедур (процедур, оформленных в виде стандартных программ и применяющихся для широкого класса задач) и табличных алгорит мов. Практика показала, что алгоритмы, не характеризующие со держательную часть решения задачи (алгоритмы ввода, поиска, вывода информации, обмена информацией с внешними запоми нающими устройствами), могут быть представлены в виде соот ветствующих процедур и на них не нужно разрабатывать микро схему при решении конкретной задачи. Здесь наблюдается тесная связь с математическим обеспечением той ЭВМ, на которой реали зуется система АПТ. Чем богаче это обеспечение различного рода стандартными процедурами, т. е. чем богаче библиотека стандарт ных программ, тем легче разрабатывать алгоритмы, составлять и отлаживать программы. Это положение требует от специалиста, создающего микросхемы (обычно это опытный технолог, имеющий практику программирования) хорошего знания библиотеки стан дартных программ (БСП). Изучение БСП компенсируется много кратным сокращением трудоемкости создания алгоритмов, в ко торых используются стандартные процедуры. Среди стандартных особое место занимают процедуры, в которых зафиксированы таб личные алгоритмы. Они возникли как результат обобщения опыта по созданию алгоритмов АПТ и представляют собой удобное сред ство как для обработки массивов с постоянной технико-экономи ческой информацией, так и для записи сложных алгоритмов.
Отметим также, что язык содержательных понятий должен быть по возможности формализован, т. е. каждое применяемое технологическое понятие нужно точно определять. Тогда можно достаточно просто создавать процедуры, формирующие указанное понятие в ЭВМ. Например, понятие «назначить инструмент» означает занесение кода инструмента в элемент массива, описы вающего правило обработки данной поверхности, условие «если деталь имеет центральное сквозное отверстие» соответствует про цедуре исследования внутренних ступеней детали и присвоение некоторой переменной кода, обозначающего наличие или отсут ствие центрального сквозного отверстия.
205
ТАБЛИЧНЫЕ АЛГОРИТМЫ
Применение стандартных процедур является одним из важней ших средств универсализации программ и позволяет значительно уменьшить время разработки и отладки. Особенно эффективно их использование для табличных алгоритмов, т. е. алгоритмов, предназначенных для поиска и выборки из таблиц. Так, могут быть выражены не только постоянные технико-экономические показатели системы, но и сложные алгоритмы.
Применение таблиц, с одной стороны, позволяет облегчить разработку алгоритмов, представить их в достаточно удобной и наглядной для человека форме записи, а, с другой, дает возмож ность заложить их в ЭВМ в виде некоторого массива данных, и все вычисления, связанные со сложной проверкой различных логи ческих условий, свести к поиску в этих массивах при помощи набора стандартных процедур. Таким образом, уменьшается длина программы и улучшаются адаптивные свойства системы, так как введение изменений в массивы проще и удобнее, чем в программы.
При изучении табличных алгоритмов в основном будем рас сматривать лишь условия типа хга. Если оно выполняется (т. е. элементарное высказывание хга истинно), то присвоим некоторой логической переменной I значение 1, если условие не выполняется
(т. е. высказывание хга ложно), то / = |
0. Для некоторого набора |
|
(кортежа) условий Р = (Ри Р 2, ■• •, |
Рп)> где p i — обозначение |
|
условия хга (Р(- = |
(х(, rL, at)), можно образовать некоторый кор |
|
теж I = (llf 12, |
каждая компонента которого есть логи |
|
ческая переменная для соответствующей компоненты кортежа Р. Для некоторой конкретной ситуации, т. е. для заданных значений переменных, входящих в условия, компоненты кортежа принимают значение 0 или 1 в зависимости от выполнения условий. Например,
имеем набор |
условий: |
а± = 2, а |
2 = 3, а3 = 5. Тогда |
||||
|
Р = (Р1) |
Р 2у Р з)> |
I ~ |
(^1> |
^ 2> ^з)> |
||
Р\ ~ |
(*i>'4.» |
2); |
|
Р 2 = (х2, |
3); |
Р 3 = (х3,::4:,5), |
|
где компоненты 4, |
3, |
1 |
— числовые |
коды отношений «меньше», |
|||
«больше или равно», «равно». Пусть в некоторой ситуации пере
менные |
приобрели |
значение |
х г = 3, |
х 2 = 10, х3 = |
5. |
Тогда |
||||||||
Р 1 |
= |
(3,-4, |
2) (3 < |
2, |
условие |
не выполнено, |
|
— 0); |
||||||
Р 2 = |
(10, 3, |
3) (10 |
|
3, |
условие выполнено, |
/ 2 |
= |
1); |
||||||
Р3 = |
(5, -Т, |
5)‘(5 = |
5, |
условие |
выполнено, |
13 — 1) |
||||||||
и следовательно, |
I |
= (0,1,1). |
Если |
кортеж |
Р |
имеет |
длину п, |
|||||||
т. е. содержит п компонент, то максимальное число кортежей I = |
||||||||||||||
= (/1( / 2, |
. . ., /„) |
равно |
2п. Множество кортежей I |
образуют |
||||||||||
матрицу L, называемую логическим базисом. Каждый элемент |
||||||||||||||
матрицы |
|
Lh ,■ — есть значение |
логической |
переменной |
для i-й |
|||||||||
ситуации и /-го условия |
(i = |
1, |
. . ., |
2n, j = |
1, . . ., |
п), |
а строка |
|||||||
206
матрицы — есть кортеж содержащий значение всех логических переменных для i-й ситуации. При решении практических задач обычно не все ситуации теоретически возможны, а из возможных практически используются также не все, поэтому число реально используемых строк (длина базиса) в L намного меньше чем 2п.
Будем различать входные и выходные условия, последние будем обозначать как ZrC, где Z — выходная переменная, С — константа, г — отношение типа «равно». Это отношение наи более часто применяют для выходных условий, поэтому, других отношений для них рассматривать не будем, и, следовательно, обозначение отношения можно опустить. При машинной проверке выходных условий истинность высказывания ZrC рассматривается как необходимость в присвоении переменной Z значения С. Вход ные и выходные условия могут быть выражены в виде таблицы с заголовком (головка таблицы) или без него (в виде матрицы). Входные условия бывают независимыми (одноуровневыми) и за висимыми (многоуровневыми).
Табличное |
представление одноуровневых входных |
условий |
|||||
Таблица |
I |
типа |
|
|
|
Таблица |
II типа |
Р 1 = { х , г. А ) ; А = { а ъ . . |
а п) |
Р 2 = < х , R , А > ; |
R = <г1( . . ., г„> |
||||
х г |
|
|
|
|
|
X |
А |
°1 |
|
|
|
|
Г1 |
«1 |
|
° г |
|
|
|
|
Гг |
а-г |
|
а п |
|
|
С |
|
^ ............... |
а п |
|
|
|
N |
Гп |
||||
|
|
|
Таблица |
III |
типа |
|
|
|
Р 3 |
= { P i ...........Р п >; |
P i |
= |
( x t , r t , щ ) |
|
|
V i |
|
х г гг |
|
|
|
1 |
Хтпгт |
|
|
|
|
|
|||
a i |
|
0-2 |
■ |
|
|
|
ат |
Здесь в таблице I типа — условия, имеющие одинаковую пере менную х и отношение г; II типа — условия, имеющие лишь оди наковую переменную х ; для III типа характерно наличие хотя бы двух разных переменных. При машинной проверке условий I и II типов (Р1 или Р2), т. е. условий хга; или xrfi, обычно необ ходимо запомнить номер t, при котором условие выполняется.
При условиях III типа, используемых обычно вместе со своим логическим базисом, необходимо запоминать выполнение или не выполнение всех условий для конкретной ситуации. Многоуров невые входные условия получаются соединением одноуровневых. Связь между условиями в этом случае носит иерархический ха рактер. При^проверке многоуровневых входных условий необ ходимо заполнить номер (номера) строки (строк), в которой вы полняются все входящие в нее условия.
207
Т аб ли чное п редставлен и е м ногоуровн евы х входны х условий
|
Таблица |
IV типа |
|
|
|
|
Таблица |
V типа |
|
||
Р 4 = |
( Р \ , . . Р \ ..........Р т1 ) |
|
|
Р 5 |
= { Р { , |
Р ] , |
. . |
., Р т2 |
) |
||
И — /-Я табл. |
I типа) |
|
|
|
( Р 2 — 1-я табл. |
II |
типа) |
|
|||
■Vi |
| . . |
хтгт |
X |
1 |
|
|
Л |
|
|
ЛГ |
|
|
|
|
|
|
|
2 |
|
|
т |
||
«11 |
«12 |
ауп |
'll |
|
«11 |
^12 |
^12 |
|
|
On |
a im |
«21 |
«22 |
&2ГП |
Г21 |
|
«22 |
Г22 |
«22 |
|
|
гчт |
т |
«/11 |
«/12 |
и пт |
ЛП1 |
|
«Л1 |
г/га |
«/12 |
|
|
Гпт |
а пт |
|
|
|
Таблица |
VI типа |
|
|
|
|
|
||
|
|
Р 8 = |
I Р ц К Р ц |
= <ЛГ£/> |
г Ч, |
« //> |
|
|
|
|
|
|
х п г1 1 ап |
|
Х12г12а12 |
|
|
|
|
x im rim^im |
|
||
|
Х21Г21а21 |
|
ха г22а22 |
|
|
|
|
хгтггта2 т |
|
||
|
xm rm ani |
|
хП2ГП1аП2 |
|
|
|
|
хптгптапт |
|
||
Аналогичное табличное представление имеют и выходные условия.
Табличное представление выходных условий
I |
тип |
|
II тип |
|
(Z, С> |
с = (Ci, . . • 1 с/г) |
V2 = <«!, |
• *• > Vm) I |
Vi = ( Z i |
|
Z |
Z l |
|
Zm |
|
|
|
|
|
|
С, |
Cl |
c 2 |
Cm |
|
|
|
|
|
. |
С2 |
|
|
|
Сп
III тип v 3 = (v } ...........V ] ,
— i -я табл. I типа)
IV тип
V* = ( V 2........... |
V ] .............. |
V n2 ) |
( у 2 — i -я табл. II типа)
Z i |
z 2 |
| . . . |
Zm |
Z n |
C n |
Z u |
С ц |
Zim |
Cytl |
Cu |
Cl2 |
|
C\tn |
Z i i |
C 21 |
Z i 2 |
С ц |
Zim |
Cim |
|
|
|
|
|
|
|
|||
Cl2 |
C 22 |
|
(-'Ят. |
|
|
|
|
|
|
C m |
Cn2 |
|
^ nm |
Z n i |
C m |
Z m |
C m |
Znm |
Cnm |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
l |
208
V тип
V» = |
|w</I, v i j = ( Z, |
C i j ) |
С и |
с 12 1 • ■ • |
С уп |
с 21 |
С 22 |
С 2т |
С щ |
Сп2 |
С пт |
Решением по этим таблицам на основе найденных по входным условиям i-го номера строки (строк) является присвоение соот ветствующей переменной, константы, записанной в найденной строке. Так, для таблицы I типа присваивается значение С,- одной
переменной Z, т. е. Z = С,; для таблицы II типа Z(- = |
Ctдля всех |
|
найденных t'-x столбцов, для таблицы |
III типа Z x |
= Сп , . . ., |
. . Zm — Cim, т. е. одному набору Z |
переменных присваивается |
|
константы из любой найденной строки матрицы М = | С;/-1; для таблицы IV типа Zn = Сп , . . ., Zim = Cim, т. е. разным пере менным присваиваются разные значения. При использовании таблицы V типа переменной Z присваивают значение С(/, где i и \ — найденные номера строк и столбцов матрицы М. Следова тельно, для данной таблицы необходимо иметь две группы входных условий: одна для нахождения нужной строки; другая — для нахождении столбца матрицы М. Соединяя прямо или через логи ческий базис входные и выходные таблицы, можно получить ре зультирующие таблицы (таблицы соответствия), в которых будет зафиксировано заданное соответствие между входными и выход ными условиями. Результирующие таблицы по выходным табли цам I—IV типов включают лишь одну группу входных условий и называются одновходными. Если используется выходная таблица V типа, которая требует двух групп входных условий, то в этом случае результирующая таблица называется двухвходной. Для обозначения типа результирующей таблицы будем пользоваться условными символами входных и выходных таблиц. Например запись
Р2
!
L - V1
означает, что результирующая таблица состоит из трех: входной II типа, логического базиса L и выходной I типа. Стрелками обо значено направление перехода от одной таблицы к другой. Сокра щенное обозначение этого типа таблиц Р 2ЬУг.
14 С. П. Митрофанов |
209 |
Простейшими являются одновходные таблицы без логического базиса, т. е. типа Р1]/2, P4V \ P*V2и т. д. Их используют для записи постоянной технико-экономической информации (о заготовках, оборудовании, оснастке и т. д.). Такой, например является табл. 37.
|
|
|
|
|
|
Т а б л и ц а |
3 7 |
Сортамент круглой горячекатаной стали (ГОСТ 2590—7 Г) |
|
|
|||||
|
|
Допускаемые откл энения по диаметру |
|
|
|||
|
|
|
П ри ТОЧНОС1ги прокатки |
|
Теоретиче |
||
Диаметр |
Код |
|
|
|
|
||
|
|
|
|
ский вес |
|||
прутка, мм |
материала |
обычной |
повышенной |
погонной |
|||
длины 1 |
м, |
||||||
|
|
верхнее |
нижнее |
верхнее |
нижнее |
кг |
|
|
|
|
|
||||
18 |
01 |
+ 0 ,3 |
—0,5 |
+ 0 ,2 |
—0,3 |
2,00 |
|
19 |
01 |
+ 0 ,3 |
—0,5 |
+ 0 ,2 |
—0,3 |
2,23 |
|
20 |
01 |
+ 0 ,4 |
—0,5 |
+ 0 ,2 |
—0,4 |
2,47 |
|
21 |
01 |
+ 0 ,4 |
—0,5 |
+ 0 ,2 |
—0,4 |
2,72 |
|
Эта таблица типа Р 4И3, причем первые два столбца образуют вход ную таблицу, а остальные — выходные. Для первого столбца ус ловие Drd{ выражает необходимость найти такой номинальный диаметр di прутка, который был бы ближайшим большим или рав ным диаметру D заготовки. Для второго столбца отношение М = = mi выражает необходимость совпадения кода марки материала детали с маркой материала прутка. Если найдена строка, в которой выполняются оба заданных условия, то константы из найденной строки заносятся в соответствующие ячейки. Для обработки про стейших таблиц создаются стандартные процедуры, из которых одни применимы для входных таблиц, а другие для выходных. Комбинируя соответствующим образом эти процедуры, можно реализовать обработку достаточно большого числа типов резуль тирующих таблиц. Например, для входных таблиц может быть предложена процедура
Ft (Т, N, М, X \ l \ , RA | /, 1 1, N S \ 1 1),
где Т — код, обозначающий тип входной таблицы и характер про верки условий (по всему массиву RA или только до выполнения всех условий в какой-то строке); N —количество строк массиваRA,
в которых проверяются условия (N |
= 1 для таблицы III типа |
и N > 1 для всех остальных типов); |
М — количество столбцов |
массива RA, в которых проверяются условия (М = 1 для таблиц I |
|
и II типов, М > 1 для всех остальных типов); X \ 1 | — идентифи катор первого элемента массива входных переменных; RA \ 1, 1 | — идентификатор первого элемента массива с константами и кодами
210
отношений; N \ l \ — идентификатор первого элемента массива с ре зультатами выполнения условий.
Структура массива RA для входных таблиц
Для табл. IV типа |
Для табл. VI типа |
Для табл.
I типа |
|
|
|
|
|
|
|
|
|
Для табл.' V |
типа |
|
|
|
|
Г ц |
а 11 |
|
а12 |
г т |
а 1 т |
Для |
табл. |
Г 12 |
III |
типа |
|||||
|
|
|
|
|
|
||
Г21 |
а 21 |
г22 |
а 22 |
г2т |
&2т |
|
|
Г т |
&п J |
гт |
ап 2 |
гпт апт |
Для табл. II типа
Для таблицы V типа в этом массиве, кроме констант а и кодов отношений, записываются и относительные адреса переменных, входящих в условия. Например, если в массиве некоторое условие Хц, гц, аи выражено как три числа 25;-&; 6, то это означает запись условия X 12513 ; 6. Условия при помощи данной процедуры про веряют следующим образом. Если необходимо проверить весь массив R A , то предварительно заносят нули в N ячеек массива NS. Проверка условия в массиве RA осуществляется построчно, а в каждой строке последовательно по столбцам. Если в 1-й строке выполнены все условия, то в ячейку NS \ 11заносят единицу, если нет, то переходят к следующей строке. Таким образом после про смотра массива RA в некоторых ячейках массива NS будут на ходиться единицы, свидетельствующие о том, что в соответствую-
14* |
211 |
щих строках RA выполнены все условия. Для таблицы III типа проверка по столбцам эквивалентна проверке по строкам для дру гих типов таблиц, т. е. в массиве NS отражается, в каких столбцах массива RA выполнены условия. При втором варианте проверки условий, как только в какой-то строке выполнены все условия, то в NS 11 1заносится номер этой строки, после чего происходит выход из процедуры.
Для обработки выходных таблиц может быть использована процедура
F A T , N, М, NS\1\, Z\l\, С\Г, 1 1),
где Т, N , М — имеют тот же смысл, что и в процедуре F N S 11\— идентификатор первого элемента массива с результатами проверки входных условий; Z \ l \ —идентификатор первого элемента мас сива выходных данных; С \ 1, 1 \— идентификатор первого элемента массива констант. В процедуре F2 используется массив NS, ко торый заполнен при помощи процедуры Fx.
Выходные таблицы обрабатываются следующим образом. При первом варианте проверки входных условий можно применять лишь II и IV тип выходных таблиц, так как в этом случае для тех строк массива NS, в которых есть единицы, выполняются соответ ствующие операции присвоения, как это показано на следующем
примере для выходной таблицы |
IV типа: |
|||
Массив N S |
Массив |
|
|
Выполняемые действия |
5 |
6 |
6 |
12 |
|
6 |
10 |
7 |
15 |
-> Z | 6 |= 10 Z | 7 | ,= 15 |
7 |
10 |
8 |
17 |
|
8 |
12 |
9 |
19 |
- * Z \ 8 \ = 12 Z \ 9 \ — 19 |
При втором варианте проверки входных условий операции присвоения выполняются лишь для той строки массива NS, номер которой записан в NS \ 1 1, как это показано на следующем примере для таблицы III типа:
N S |
Массив С |
|
|
2 |
6 |
7 |
|
|
10 |
10 |
|
|
12 |
15 |
-► Z | б | = 12 Z | 7 | = 15 |
|
16 |
14 |
|
212
