Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

77-30569/400027 Описание структуры технических объектов с взаимозаменяемыми элементами

# 04, апрель 2012
Файл статьи: Мокрозуб_P.pdf (496.04Кб)
авторы: Мокрозуб В. Г., Борисяк А. А., Лагутин Д. А.

УДК 004.9.

Тамбовский государственный технический университет

mokrozubv@yandex.ru

Введение

Одним из основных документов, описывающих структуру выпускаемых машиностроительным предприятием изделий, является спецификация. Этот документ создается на этапе конструкторской подготовки производства и используется многочисленными службами предприятии, как на этапе подготовки производства, так и на этапе изготовления изделия.

Описанию структур технических объектов (ТО) посвящено большое количество публикаций. В [1] предлагается использовать полихроматические множества для описания состава и свойств изделий, в [2, 3] представлены способы представления структуры изделий в информационных системах управления машиностроительными предприятиями. В [4] описано применение гиперграфов и реляционных баз данных для описания и хранения структуры ТО.

В конструкции изделия достаточно часто на одну позицию спецификации закладывается несколько взаимозаменяемых (альтернативных) элементов, которые могут влиять и на другие позиции спецификации изделий. Выбор конкретного элемента для таких позиций осуществляется диспетчерскими службами предприятия на основании имеющегося задела, остатков на складе (например, покупных комплектующих) и др. Условия взаимодействия таких переменных позиций задаются конструктором.

Цель работы – разработка способов представления структуры ТО cвзаимозаменяемыми элементами в автоматизированных информационных системах. В качестве базового программного обеспечения принята реляционная база данных.

Область использования результатов – автоматизированные информационные системы, предназначенные для проектирования технических объектов и управления предприятиями машиностроительного профиля.

1. Структура базы данных спецификации изделий с взаимозаменяемыми

элементами

Рассмотрим изделие а1, которое состоит из деталей а2 и а5 и двух сборочных единиц а3, а6 или а4, а7. Ниже представлены спецификации всех сборочных единиц.

Спецификация  а1

Позиция

Обозначение

Количество

1

а2

1

2

а3 или а4

2

3

а5

3

4

а6 или а7

1

 

Спецификация а4

Позиция

Обозначение

Количество

1

а10

2

2

а11

1

 

Спецификация а7

Позиция

Обозначение

Количество

1

а15

2

2

а16

1

 

Спецификация а2

Позиция

Обозначение

Количество

1

а8

2

2

а9

2

 

 

 

 

Спецификация а6

Позиция

Обозначение

Количество

1

а12 или а13

1

2

а14

2

 

Спецификация а9

Позиция

Обозначение

Количество

1

а17 или а18

2

2

а19

1

 

 

На рис. 1 приведено дерево изделия а1, составленное из спецификаций сборочных единиц, входящих в а1.

 

Рис. 1 Дерево изделия а1.

 

Взаимозаменяемость элементов определяется следующими правилами:

Правило 1. Если а3 то а6.

Правило 2. Если а4 то а7.

Правило 3. Если а17 то а12.

Правило 4. Если а18 то а13.

Для изготовления изделия а1 необходим однозначно задать позиции с взаимозаменяемыми элементами. Исходными данными для составления такой спецификации является наличие или отсутствие элементов а3, а4, а17, а18 в конечном изделии. При этом возможны разные варианты. На рис. 2. представлены деревья, полученные после применения правил 1-4 для следующих исходных данных:

-     а3, а17 присутствуют в изделии а1, (рис. 2,а);

-     а4 присутствует в изделии а1 (рис. 2,б).

 

Рис. 2. Возможные варианты изделия а1

 

Структура базы данных спецификации изделий с взаимозаменяемыми элементами представлена на рис. 3. Таблица Изделия содержит все сборочные единицы и детали, как покупные, так и изготавливаемые на предприятии. В таблице Спецификации поле ID_Изделия_родителя представляет изделие, для которого составлена спецификация (куда входит изделие потомок). Для альтернативных позиций ID_Изделия_потомка будет равно нулю. В этом случае потомки определяет таблица ИЛИ_позиции, в которой для одной позиции спецификации задается несколько изделий потомков. В таблице Правила для альтернативных позиций спецификаций в поле Текст_на_SQL задается правило взаимозаменяемости элементов в формате SQL. Поле Текст_на_ЕЯ содержит правило на естественном языке, например «Если А17, то А12». Поля ID_Определяющего_элемента и ID_Определяемого_элемента необходимы для того, чтобы в дальнейшем выбирать для обработки только те правила, которые могут иметь отношение к раскрываемому изделию.

 

Рис. 3.  Структура базы данных спецификации изделий с взаимозаменяемыми элементами

 

2. Алгоритм составления дерева изделия

Алгоритм составления дерева изделия состоит из следующих шагов:

-         шаг 1. Выбор корневого элемента из таблицы Изделия;

-         шаг 2. Построение дерева изделия по таблице Спецификации без взаимозаменяемых элементов;

-         шаг 3. Добавление в дерево взаимозаменяемых элементов из таблицы Или_потомки.

-         шаг 4. Удаление из дерева записей с нулевым значением ID_Изделия_Потомка.

Ниже представлен листинг рекурсивной программы  в формате Transact-SQL (релиз SQL фирмы Microsoft) построения дерева изделия (для изделия с ID_Изделия=4). Здесь Ключ_сортировки - символьная строка, полученная соединением ID всех родителей текущего изделия, разделенных точкой. Результат помещается в таблицу #Дерево. Поле Уровень позволяет контролировать глубину вложенности потомков, для предотвращениязацикливании. Ниже представлен программный код реализующий предложенный алгоритм.

 

with tree (ID_Изделия, ID_Изделия_родителя, ID_Изделия_потомка,

    Количество, Уровень, Ключ_сортировки, ID_Спецификации)

   as

/* Выбор корневого изделия из таблицы "Изделия" */

(select  ID_Изделия, 0, ID_Изделия, 1, 0,

     cast (ID_Изделия as varchar(max)), 0

     from Изделия where ID_Изделия=1

union all

/* Построение дерева без взаимозаменямых элементов */

  select t.ID_Изделия, a.ID_Изделия_родителя,

          a.ID_Изделия_потомка, a.Количество,

          case a.ID_Изделия_потомка when 0

                then t.уровень

                elset.уровень+1

          end,  

          case a.ID_Изделия_потомка when 0

              thent.Ключ_сортировки

              elset.Ключ_сортировки+'.'+

                      cast(a.ID_Изделия_потомка as varchar(5))

         end,

         a.ID_Спецификации     

   from Спецификации as a

   inner join tree as t on

         a.ID_Изделия_родителя=t.ID_Изделия_потомка

union all

/* Добавление взаимозаменяемых элементов */

  select t.ID_Изделия, t.ID_Изделия_родителя,

            i.ID_Изделия_потомка, i.Количество, t.уровень+1,

            t.Ключ_сортировки+'.'+

                   cast(i.ID_Изделия_потомка as varchar(5)),

            t.ID_Спецификации

  from tree as t

  inner join  dbo.Или_позиции as i on

            t.ID_Спецификации=i.ID_Спецификации

  where t.ID_Изделия_потомка=0

 )

select  ID_Изделия, ID_Изделия_родителя,

           ID_Изделия_потомка,  Количество, Уровень,

           Ключ_сортировки, ID_Спецификации into #Derevo

           from tree  where ID_Изделия=1

           orderby  Ключ_сортировки 

/* Удаление записей с нулевым ID_Изделия_потомка */

delete from #Derevo where  ID_Изделия_потомка=0

 

Ниже представлены таблицы описанных выше изделий a1, a2, а4, а6, а7, а9 и дерево изделия, полученное после выполнения программного.

Изделия

ID_Издел.

Обозн.

1

а1

2

а2

3

а3

4

а4

5

а5

6

а6

7

а7

8

а8

9

а9

10

а10

11

а11

12

а12

13

а13

14

а14

15

а15

16

а16

17

а17

18

а18

19

а19

20

а20

 

Спецификации

ID_Спе-циф.

Позиция

ID_Изд._

родителя

ID_Изд._

потомка

1

1

1

2

2

2

1

0

3

3

1

5

4

4

1

0

5

1

3

8

6

2

3

0

7

1

4

10

8

2

4

11

9

1

6

0

10

2

6

14

11

1

7

15

12

2

7

16

13

1

9

0

14

2

9

19

Исх_данные

ID_Исх_Дан.

ID_Специф.

ID_Изд._

потомка

1

2

3

2

13

17

 

Или_позиции

ID_Или

позиции

ID_Специф.

ID_Изд._

потомка

1

2

3

2

2

4

3

4

6

4

4

7

5

9

12

6

9

13

7

13

17

8

13

18

 

 

#Derevo

ID_Изделия_

родителя  

ID_Изделия_

потомка

Уровень

Ключ_

сортировки

ID_Спецификации

0

1

0

1

0

1

2

1

1.2

1

1

3

1

1.3

2

3

8

2

1.3.8

5

3

9

2

1.3.9

6

9

17

3

1.3.9.17

13

9

18

3

1.3.9.18

13

9

19

3

1.3.9.19

14

1

4

1

1.4

2

4

10

2

1.4.10

7

4

11

2

1.4.11

8

1

5

1

1.5

3

1

6

1

1.6

4

6

12

2

1.6.12

9

6

13

2

1.6.13

9

6

14

2

1.6.14

10

1

7

1

1.7

4

7

15

2

1.7.15

11

7

16

2

1.7.16

12

 

Дальнейшая обработка таблицы #Дерево заключается в удалении альтернативных позиций по исходным данным выполнении правил из таблицы Правила для каждой альтернатавной позиции.

 

/ * Удаление альтернативных элементов по исходным данным */

select Ключ_сортировки into #a from #derevo a, Исх_данные b

where a.ID_Спецификации=b.ID_Спецификации and

a.ID_Изделия_потомка<>b.ID_Изделия_потомка

delete from #derevo where Ключ_сортировки in

   select a.Ключ_сортировки from #derevo a

   inner join #a b on a.Ключ_сортировки Like b.Ключ_сортировки +'%')

 

3. Представление правил взаимозаменяемости элементов в формате SQL

 Рассмотрим синтаксис правила на примере «Если а17, то а12». В таком виде в реальной системе правило применять нельзя, так как в других изделиях (не а1), оно может не работать. В настоящем примере правило формулируется следующим образом:  «Если в дереве изделия присутствует элемент а17, входящий в а9, и присутствует элемент а12, входящий в а6, то на позиции 1 изделия а6 надо оставить элемент а12». Оставить а12 – значить удалить все элементы кроме а12 с позиции 1 изделия а6.

С учетом сказанного текст правила на SQL будет следующим.

 

if exists (select * from #derevo where ID_Спецификации=13

        and ID_Изделия_Потомка=17 and

        Ключ_сортировки like '%.'+ltrim(str(9))+'.%' )

    and exists (select * from #derevo where ID_Спецификации=9

        and ID_Изделия_Потомка=12 and

        Ключ_сортировки like '%.'+ltrim(str(6))+'.%' )

    delete from #derevo where Ключ_сортировки in

              (select   a.Ключ_сортировки from #derevo a

        inner join (select Ключ_сортировки  from #derevo

        whereID_Спецификации=9 and

        ID_Изделия_потомка<>12) b on

              a.Ключ_сортировки Like b.Ключ_сортировки +'%')

 

Аналогично можно составить тексты других  правил.

 

Заключение

Представленные в работе для изделий с взаимозаменяемыми элементами: структура реляционной базы данных, алгоритм обработки базы данных для получения дерева изделия и правила взаимозаменяемости элементов в формате SQL использованы авторами при разработке программного обеспечения ряда автоматизированных информационных систем [5,6].

 

Работа выполнена в рамках Федеральной целевой программы «Научные и научно-педагогические кадры инновационной России» на 2009 – 2013 годы.

 

ЛИТЕРАТУРА

1. Павлов В.В. Структурное моделирование в CALS-технологиях. Ин-т конструкторско-технологической информатики РАН. М.: Наука, 2006. 307 с.

2. Мокрозуб В.Г. Представление структуры изделий в реляционной базе данных // Информационные технологии. 2008. №11(147). С. 11 – 13

3. Мокрозуб  В.Г. Представление структуры изделий в информационных системах управления машиностроительными предприятиями // Вестник компьютерных и информационных технологий. 2009. №10(64). C. 30-34

4. Мокрозуб В.Г., .Немтинов В.А., Егоров С.Я., Морозов С.В. Применение гиперграфов и реляционной базы данных для описания структуры радиотехнических // Успехи современной радиоэлектроники. 2009. № 11. С 37-41.

5. Малыгин Е.Н., Карпушкин С.В., Мокрозуб В.Г., Краснянский М.Н. Cистема автоматизированного расчета и конструирования химического оборудования // Информационные технологии. 2000. № 12. С. 19-21.

6. Мокрозуб В.Г., Мариковская М.П., Красильников В.Е. Методологические основы построения автоматизированной информационной системы проектирования технологического оборудования // Системы управления и информационные технологии. 2007. № 1.2 (27). С. 259-262.

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2018 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)