Современные решения для производства электроники

Урок 14. Генерация отчетов

На данном занятии мы рассмотрим автоматическую генерацию отчетов о проекте. Отчетами называются тестовые файлы, которые содержат упорядоченную информацию о различных частях проекта, например, списки компонентов или цепей, перечни используемых материалов, координатные файлы для аппаратуры автоматического монтажа. Отчеты формируются с помощью специального модуля вызываемого командой Report Generator | Manage Reports по алгоритму, описанному специальным набором команд и сохраненному в файле управления генератором отчетов с расширением .rgf (шаблоне отчета).

 

Использование готовых файлов управления генератором отчетов

Для начала мы рассмотрим самую простую операцию — формирование отчета с использованием готового управляющего файла. Несколько примеров таких файла имеются в стандартной поставке пакета CADSTAR.

Для работы нам потребуется специальный пример Chapter9.pcb, который также входит в комплект стандартной поставки программы CADSTAR.

1. Выполним команду меню File | Open и в появившемся окне выберем файл Chapter9.pcb.

2. Выполним команду меню View | View All или нажмем кнопку  на панели инструментов.

Откроется окно редактора печатных плат с выбранным проектом.

3. Выполним команду меню Tools | Report Generator | Manage Reports.

На экране появится диалоговое окно управления генератором отчетов Manage Reports, показанное на рисунке 1.

Рис. 1. Окно управления генератором отчетов.

4. Это сокращенный вид окна, чтобы получить полный вид, нажмем на кнопку Edit >>.

Справа появятся два поля Report Elements (элементы отчета) и Report Contents (управляющий код).

5. В поле Report Target включим опцию View Report, что даст возможность просмотреть полученный отчет на экране.

6. Нажмем кнопку Open.

7. В появившемся стандартном окне выбора файла перейдем в папку Reports, в ней найдем файл Netnode.rgf и нажмем кнопку Открыть.

Рис. 2. Управляющий код генератора отчетов.

В поле Report Contents появится управляющий код (рис. 2), который имеет два цикла For Each — один для каждой цепи и один для каждого узла этой цепи (вложенный), заканчивающихся командой Next. В результате в текстовом файле отчета будет получена следующая информация: номер строки (Variable (Line Number)), имя цепи (Net.Net Name), пробел (" «), имя компонента (Net Node.Comp Name) и номер вывода (Net Node.Pin Name).

8. Нажмем кнопку Run и запустим формирование отчета.

Рис. 3. Отчет о подключениях к  цепям в проекте.

На экране появится окно с отчетом, показанное на рисунке 3. Сравним текст отчета с управляющим кодом в окне Manage Reports и попытаемся понять взаимосвязь. Внешний цикл по цепям формирует строку с номером 1 с именем цепи $5. Далее начинает работать вложенный цикл по узлам этой цепи: строки 2 и 3 содержат номера строк, табулирующие пробелы, имена компонентов и номера выводов этих компонентов, подключенных к данной цепи. Затем идет строка с именем второй цепи, строки с описанием подключений к ней и так далее.

9. Нажмем кнопку Close и закроем окно просмотра отчета.

10. В окне Manage Reports нажмем кнопку Close и закроем окно генератора отчета.

 

Быстрый метод генерации отчета

Если в процессе работы тот или иной отчет будет формироваться достаточно часто, то имеет смысл использовать быстрый метод вызова генератора отчета без использования диалогового окна Manage Reports. Система CADSTAR позволяет настраивать генератор отчета таким образом, чтобы он запускался специальной командой меню.

1. Выполним команду меню Tools | Options и в появившемся диалоговом окне Options перейдем на вкладку Reports (рис. 4).

Рис. 4. Настройка раздела отчетов в меню команд.

Здесь в поле Reports on Menu приведен список отчетов, генерация которых доступна через меню команд. Вполне возможно, что данное поле окажется пустым, что означает, что ни один отчет ранее настроен не был. Исправим положение.

2. Нажмем кнопку Add.

3. В проявившемся окне Add Report (рис. 5) нажмем кнопку Browse.

Рис. 5. Добавление отчета в меню.

4. В появившемся стандартном окне выбора файла перейдем в папку Reports, в ней найдем файл Netnode.rgf и нажмем кнопку Открыть.

5. В поле Report Name введем текст Net Nodes Report и нажмем кнопку OK.

Легко видеть, что отчет с именем Net Nodes Report добавлен с список в поле Reports on Menu в окне Options.

6. Нажмем кнопку OK и закроем окно Options.

Теперь если мы проверим содержимое раздела Tools | Report Generator в меню команд, то мы увидим, что сюда добавилась новая команда Net Nodes Report (рис. 6).

Рис. 6. Новая команда вызова генератора отчетов.

7. Выполним эту команду.

Отчет будет сформирован аналогично тому, как это было сделано в предыдущем упражнении.

8. Нажмем кнопку Close и закроем окно просмотра отчета.

 

Создание нового файла управления генератором отчетов

Приступим к созданию нового файла управления генератором отчетов, который будет формировать координатный файл для управления оборудованием автоматической сборки.

1. Выполним команду меню Tools | Report Generator | Manage Reports.

На экране появится знакомое нам диалоговое окно управления генератором отчетов Manage Reports.

2. Нажмем кнопку New.

Рис. 7. Выбор типа нового отчета.

На экране появится окно New Reports (рис. 7), предлагающее выбрать тип нового отчета. Здесь имеются следующие опции:

— Empty Report — пустой шаблон отчета в поле Report Contents.

— Comma Separated Component List — разделенный запятыми список компонентов. В поле Report Contents будет добавлен циклический шаблон вывода имен и координат всех компонентов на плате через запятую.

— Column Separated Component List — разделенный на колонки список компонентов. В поле Report Contents будет добавлен циклический шаблон вывода имен и координат всех компонентов на плате в виде колонок

— Connection Nodes By Net — список подключений к цепям проекта. Подобный отчет мы рассматривали ранее.

3. Нам больше всего подходит тип отчета Comma Separated Component List (позднее мы его модифицируем), поэтому выберем эту опцию и нажмем кнопку OK.

На экране появится новое диалоговое окно New Report – Components (рис. 8), в котором необходимо указать, какая информация о компонентах будет включена в новый отчет.

Рис. 8. Выбор данных, включаемых в новый отчет.

4. Включим опции Name (позиционное обозначение), Part Name (имя компонента), Origin Position (координаты точки привязки) и Orientation (ориентация), после чего нажмем кнопку ОК.

В поле Report Contents окна New Reports появится шаблон, включающий цикл вывода в отчет следующей информации о компонентах: позиционное обозначение, имя компонента, координата по оси X, координата по оси Y, ориентация. Настроим заголовок отчета.

5. В поле Report Elements с помощью мыши выберем команду Text и нажмем кнопку Insert.

Рис. 9. Добавление текста в отчет.

6. В появившемся диалоговом окне Report Generator – Text (рис. 9) в поле Text введем текст „NUAAAAAAAA“.

7. Нажмем клавишу Enter и введем вторую строку текста „SIEMENS MS72 DRIVER FOR CADSTAR“.

8. В поле Alignment включим  опцию Left (выравнивание по левому краю).

Поскольку в каждой строке содержится только один текстовый параметр, у нас нет необходимости принудительно ограничивать длину строк и можно позволить системе заполнять строку оптимальным для нее образом.

9. В поле Width введем значение 0, что будет соответствовать отображению строк наилучшим образом.

10. Чтобы следующая за текстом информация начиналась с новой строки, включим опцию New Follows Item.

11. Убедимся, что все настройки выполнены, как показано на рисунке 9, и нажмем кнопку OK.

В поле Report Contents добавится команда Text, за которой в кавычках будет показана первая строка введенного текста. Команда Text будет добавлена после последней выделенной строки в поле Report Contents, а должна стоять в самом начале отчета.

12. Выберем только что добавленную команду Text с помощью мыши и нажмем кнопку Up несколько раз, чтобы она переместилась в самое начало шаблона отчета.

Примечание: если вам необходимо изменить вводимый текст, выполните двойной щелчок левой кнопкой мыши на команде Text.

Сразу за текстовым заголовком должна следовать строка с указанием текущей даты, добавим в шаблон соответствующую команду.

13. В поле Report Elements с помощью мыши выберем команду Date и нажмем кнопку Insert.

14. В появившемся диалоговом окне Report Generator – Text (рис. 10) в поле Alignment включим  опцию Left, в поле Width введем значение 0 и включим опцию New Follows Item, после чего нажмем кнопку OK.

Рис. 10. Добавление в новый отчет текущей даты.

В поле Report Contents сразу за командой Text добавится команда Date. Теперь нам надо добавить еще один текстовый блок, который будет следовать за строкой с датой.

15. В поле Report Elements с помощью мыши выберем команду Text и нажмем кнопку Insert.

16. В появившемся диалоговом окне Report Generator – Text в поле Alignment включим  опцию Left, в поле Width введем значение 0, включим опцию New Follows Item, а в поле Text введем следующий блок текста:

+000.00, +000.00
1 , 000.00
1 , 000.00
0.0
0.0
1.70, 0
BPAAAAAAAA
BSAAAAAAAA

17. Нажмем кнопку OK и закроем окно.

18. Убедимся, что новый текстовый блок следует сразу за датой, в противном случае с помощью кнопок Up и Down переместим его в нужное место поля Report Contents.

Добавим в отчет счетчик.

19. В поле Report Elements с помощью мыши выберем команду Count и нажмем кнопку Insert.

20. В появившемся диалоговом окне Report Generator – Counter (рис. 11) в верхнем выпадающем списке выберем строку Component, в этом случае будет посчитано количество компонентов.

Рис. 11. Добавление в отчет счетчика.

21. В следующем выпадающем списке выберем строку Total Output, в этом случае будет посчитано количество лишь тех компонентов, которые выбраны для формирования отчета.

Примечание: строка Total Count предписывать считать абсолютно все компоненты проекта.

22. В поле Associations выберем опцию Below, что позволит нам считать компоненты, обрабатываемые приведенным ниже кодом. 

23. В поле Alignment включим  опцию Left, в поле Width введем значение 0, включим опцию New Follows Item, после чего нажмем кнопку OK.

Нам остается лишь удалить из отчета параметр привязки компонентов.

24. С помощью в поле Report Contents выберем команду Using Defined Origin и нажмем кнопку Delete.

Итак, наш шаблон отчета полностью сформирован, теперь необходимо сохранить его во внешний файл с расширением .rgf.

25. Нажмем кнопку Save As.

26. В появившемся стандартном окне сохранения файла перейдем в папку Reports, зададим имя файла selftch.rgf и нажмем кнопку Сохранить.

Теперь имя файла должно появиться в верхней части окна Manage Reports.

Далее нам необходимо изменить параметры цикла For Each так, чтобы в отчет выводилась только необходимая нам информация. В частности, в отчете, который, по сути, будет управляющим файлом для оборудования сборки, нам необходима информация только об SMD компонентах на верхней стороне платы. Кроме того, она должна быть отсортирована таким образом, чтобы сначала автомат выбирал все компоненты с одним именем компонента (Part Number), которые в свою очередь должны быть отсортированы по возрастанию номера позиционного обозначения.

27. С помощью мыши выберем оператор For Each в поле Report Contents и нажмем кнопку Modify.

Рис. 12. Изменение оператора цикла For Each.

28. В появившемся диалоговом окне Report Generator – For (рис. 12) нажмем кнопку Sort Setup.

Рис. 13. Настройки сортировки цикла For Each.

На экране откроется окно Report Generator – Sort (рис. 13), в котором задаются до трех параметров сортировки, также способы сортировки по каждому из параметров:

— Ascending — сортировать по возрастанию. В этом случае параметры будут отсортированы от наименьшего алфавитного или цифрового символа к наибольшему (от A к Z и от 0 до 9).

— Descending — сортировать по убыванию. В этом случае параметры будут отсортированы от наибольшего алфавитного или цифрового символа к наименьшему (от Z к A и от 9 до 0).

— Alphabetic — сортировать по алфавиту. В этом случае параметры будут отсортированы по кодировке ASCII от первого к последнему символу.

— Alphanumeric — сортировать по номерам. В этом случае сортировка будет выполняться по буквам в параметре, а за тем по цифре за ними.

Чтобы понять отличие в типах сортировки Alphabetic и Alphanumeric, полезно рассмотреть простой пример. Список из четырех микросхем в случае Alphabetic сортировки будет выглядеть: IC1, IC10, IC11, IC2. В случае Alphanumeric сортировки: IC1, IC2, IC10, IC11, и это наилучшим образом подходит для сортировки по позиционному обозначению.

29. В верхнем поле Sort By зададим первый параметр сортировки Part Name и укажем для него способы Ascending и Alphabetic, то есть по возрастанию и в алфавитном порядке.

30. В среднем поле Then By зададим второй параметр сортировки Name и укажем для него способы Ascending и Alphanumeric, то есть по возрастанию и по возрастанию номера.

31. Третий параметр сортировки нам настраивать не нужно, поэтому просто проверим, что все настройки выполнены, как показано на рисунке 13, и нажмем кнопку OK.

Следующим шагом, настроим типы компонентов в отчете. Существует два типа: компоненты (Component) и контрольные точки (Testpoint). Напомним, что в системе CADSTAR контрольные точки представляют собой специальные компоненты с одним выводом. Таким образом, в отчете могут присутствовать три варианта данных: только о компонентах, только о контрольных точках, а также о компонентах и контрольных точках вместе.

32. Нажмем кнопку Component Types — Modify.

Рис. 14. Выбор типа компонента.

33. В появившемся диалоговом окне Component Types (рис. 14) с помощью мыши выберем тип компонентов Component и нажмем кнопку OK.

34. Убедимся, что все настройки в окне Report Generator – For выполнены, как показано на рисунке 12, и нажмем кнопку OK.

Теперь оператор For Each в поле Report Contents изменит вид: если раньше он выглядел For Each Component (Component, Testpoint), то сейчас он примет вид For Each Component (Component) Sorted by Part Name then by Name.

Введем в цикл логический оператор If, который позволит ограничить число обрабатываемых компонентов и выбрать из них SMD компоненты.

35. С помощью мыши выделим в поле Report Contents только что отредактированный оператор For Each.

36. В поле Report Elements с помощью мыши выберем команду If и нажмем кнопку Insert.

На экране появится диалоговое окно Report Generator – If (рис. 15).

Рис. 15. Настройки оператора If.

37. Выполним все настройки в этом окне, как показано на рисунке 15, а именно: в выпадающем списке If выберем параметр Comp Side; в выпадающем списке Of выберем тип объектов Component, обладающих этим параметром; в выпадающим списке Is выберем условие сравнения Equal To и в самом нижнем списке значение параметра для сравнения SMD on Top Side.

38. Нажмем кнопку OK.

В шаблоне управляющего файла сразу за оператором For Each появится строка If Component.Comp Side = SMD on Top Side, что будет означать проверку логического условия: если параметр компонента Copm Side (сторона размещения) равен SMD on Top Side (SMD на верхней строне), то  должна быть выполнена некоторая последовательность операторов, ограниченная оператором End If. Любая конструкция с оператором If должна заканчиваться оператором End If, поэтому система автоматически добавит его строкой ниже. В нашем случае, чтобы вывод данных о компонентах выполнялся только при выполнении логического условия, необходимо переместить оператор End If в конец цикла.

39. С помощью мыши выделим в поле Report Contents оператор End If и нажмем несколько раз кнопку Down, чтобы оператор End If оказался ниже строки Component.Orientation и выше оператора Next.

Нам остается переместить строку Component.Name, чтобы позиционное обозначение отображалось в отчете не в первой, а в последней колонке, а также добавить текстовую строку 0, 0.00, 0.00.

40. С помощью мыши выделим в поле Report Contents строку Component.Name и нажмем несколько раз кнопку Down, чтобы она переместилась и оказалась ниже строки Component.Orientation и выше оператора End If.

41. С помощью мыши выделим в поле Report Contents оператор Next.

42. В поле Report Elements с помощью мыши выберем команду Text и нажмем кнопку Insert.

43. В появившемся диалоговом окне Report Generator – Text в поле Alignment включим  опцию Left, в поле Width введем значение 0, включим опцию New Follows Item, а в поле Text введем текст 0, 0.00, 0.00, после чего нажмем кнопку OK и закроем окно.

Рис. 16. Окончательный вид шаблона отчета.

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

44. Выполним двойной щелчок левой кнопкой мыши на строке Component.Part Name в поле Report Contents.

Рис. 17. Настройки формата вывода имени компонента.

45. В появившемся окне Report Generator – Member (рис. 17) в поле Width введем значение 13 и проверим, что включена только опция Comma Follows Item, после чего нажмем кнопку OK.

При таких настройках под колонку с именем компонента Part Name будет зарезервировано 13 символов, а следующее значение пойдет на той же строчке после запятой. Под колонки с координатами компонентов необходимо выделить по 10 символов.

46. Выполним двойной щелчок левой кнопкой мыши на строке Component.Position X в поле Report Contents.

47. В появившемся окне Report Generator – Member в поле Width введем значение 10 и проверим, что включена только опция Comma Follows Item, после чего нажмем кнопку OK.

48. Выполним двойной щелчок левой кнопкой мыши на строке Component.Position Y в поле Report Contents.

49. В появившемся окне Report Generator – Member в поле Width введем значение 10 и проверим, что включена только опция Comma Follows Item, после чего нажмем кнопку OK.

Под колонку со значением ориентации компонента зарезервируем 8 символов.

50. Выполним двойной щелчок левой кнопкой мыши на строке Component.Orientation в поле Report Contents.

51. В появившемся окне Report Generator – Member в поле Width введем значение 8, выключим опцию Newline Follows Item и включим опцию Comma Follows Item, после чего нажмем кнопку OK.

По последний элемент строки данных — позиционное обозначение — зарезервируем 12 символов, и сделаем так, чтобы следующее значение данных начиналось с новой строки.

52. Выполним двойной щелчок левой кнопкой мыши на строке Component.Name в поле Report Contents.

53. В появившемся окне Report Generator – Member в поле Width введем значение 12, выключим опцию Comma Follows Item и включим опцию Newline Follows Item (рис. 18), после чего нажмем кнопку OK.

Рис. 18. Настройки формата вывода позиционного обозначения.

Нам остается задать точность данных для значения ориентации компонента.

54. Нажмем кнопку Options в окне Manage Reports.

55. В появившемся на экране диалоговом окне Report Generator – Options (рис. 19) в поле Number of Decimal Places For Orientation введем значение 0, что будет соответствовать выводу целочисленных значений угла поворота в градусах.

Рис. 19. Настройка точности данных для ориентации.

56. Нажмем кнопку и закроем окно.

57. Нажмем кнопку Save и сохраним разработанный нами шаблон во внешний файл.

Теперь мы  полностью готовы к формированию отчета на основе разработанного нами управляющего файла.

58. Нажмем кнопку Run.

Рис. 20. Отчет, сформированный по разработанному нами шаблону.

На экране появится окно View File с только что сформированным отчетом (рис. 20). Легко видеть, что вся информация в отчет выведена согласно сделанным нами настройкам.

59. Нажмем кнопку Close и закроем окно отчета.

60. Нажмем кнопку Close и закроем окно Manage Reports.

 

Параметрическое управление выводимыми в отчет данными

Рассмотрим еще один простой пример, демонстрирующий гибкость генератора отчетов системы CADSTAR. Допустим, в наш отчет должна быть включена информация только о компонентах, мощность рассеивания которых меньше чем 0,0119 Вт. Все компоненты на плате имеют атрибут thm_power_diss с заранее заданным значением мощности рассеяния. В шаблоне отчета мы можем ввести оператор If, выполняющий проверку превышения значением этого атрибута некоторого определенного порогового уровня.

1. Выполним команду меню Tools | Report Generator | Manage Reports.

На экране появится окно Manage Reports, в котором будет открыт последний использовавшийся шаблон отчета, а именно selftch.rgf.

2. Выполним двойной щелчок левой кнопкой мыши на операторе If в поле Report Contents.

На экране появится диалоговое окно Report Generator – If.

Рис. 21. Настройка проверки рассеиваемой мощности.

3. Выполним все настройки в этом окне, как показано на рисунке 21, а именно: в выпадающем списке If выберем параметр thm_power_diss (attribute) и под ним значение Attribute Text; в выпадающем списке Of выберем тип объектов Component, обладающих этим параметром; в выпадающим списке Is выберем условие сравнения Less Than.

Теперь нам необходимо задать пороговое значение для сравнения.

4. Нажмем кнопку справа от самого нижнего списка, где приведено значение (Undefined).

5. В появившемся на экране окне Report Generator – List Item (рис. 22) в поле Text введем значение 0.0119 и нажмем кнопку OK.

Рис. 22. Задание порогового значения рассеиваемой мощности.

Введенное значение окажется заданным в качестве порога сравнения.

6. Нажмем кнопку OK и закроем окно Report Generator – If.

Теперь строка оператора If в шаблоне будет выглядеть следующим образом: If Component.thm_power_diss.Text < 0.0119.

7. Нажмем кнопку Run.

Рис. 23. Отчет, сформированный по новому шаблону.

На экране появится окно View File с только что сформированным отчетом (рис. 23). Легко видеть, что теперь вместо тринадцати в отчете содержится информация всего о восьми компонентах, удовлетворяющих условию проверки мощности рассеяния.

Заметим, что, изменив оператор If, мы исключили проверку типа SMD компонентов и их расположение на верхнем слое, поэтому в общем случае в отчет должны были войти все компоненты, с мощностью рассеяния менее 0.0119 Вт. Чтобы избежать подобных коллизий, необходимо в шаблоне организовать две вложенные конструкции из операторов If, одна из которых будет проверять тип SMD компонентов, а другая — рассеиваемую мощность. Мы рекомендуем проделать это в качестве самостоятельного упражнения.

8. Нажмем кнопку Close и закроем окно отчета.

9. Нажмем кнопку Close и закроем окно Manage Reports.

Итак, на данном занятии мы научились формировать отчеты, включающие различную информацию из проекта. На следующем занятии мы научимся готовить данные для производства печатных плат.

 

Уроки Zuken CADSTAR
Урок 26
Формирование на топологии различных областей специальной формы. Рисование объектов. Заливка областей металлизации. Автоматическая заливка полигона.
Урок 7 часть 1
Запуск редактора плат программы CADSTAR. Интерфейс системы CADSTAR. Использование справочной системы. Открытие проекта. Работа с панелью управления Workspace. Работа с окном Shape Properties. Работа с панелями инструментов. Настройка вида курсора. Масштабирование изображения. Сохранение и вызов специфических видов. Рисование объектов.
Урок 1, часть 1
Запуск редактора схем программы CADSTAR. Интерфейс системы CADSTAR. Использование справочной системы. Открытие проекта. Работа с панелью управления Workspace. Работа с окном Shape Properties. Работа с панелями инструментов. Листы и иерархические связи между ними. Альтернативный метод выбора листов. Масштабирование изображения. Сохранение и вызов специфических видов. Навигация по иерархическим связям.
Урок 15, часть 2
Создание карты сверловки. Создание выходного файла для сверлильного станка с числовым программным управлением (NC Drill). Пакетная постпроцессорная обработка.