Лингвистическим обеспечением САПР ТП называют совокупность средств и правил для формализации естественного языка, используемых пользователями и эксплуатационным персоналом САПР ТП при общении с комплексом средств автоматизации при эксплуатации системы. Лингвистическое обеспечение используют для представления и реализации информационного и программного обеспечения.
Основу лингвистического обеспечения САПР ТП составляют специальные языковые средства (языки проектирования и программирования), предназначенные для общения человека с техническими и программными средствами автоматизации в процессе проектирования.
Язык проектирования – язык представления описаний объекта проектирования и их преобразований.
Язык проектирования, применяемый для представления задания на проектирование, называют входным языком проектирования. Выходной язык проектирования предназначен для представления проектного решения, включая результат проектирования, в форме, удовлетворяющей требованиям его дальнейшего применения.
Языки программирования используют для представления описания способа решения задачи в форме конечной последовательности действий для исполнения компьютером.
Машинным (машинным, или объектным, кодом) называют язык программирования, предназначенный для представления программ в форме, позволяющей выполнять их техническими средствами.
Для упрощения и снижения трудоемкости составления компьютерных программ на машинных языках программирования были созданы алгоритмические языки программирования: низкого уровня (Assembler) с операторами, близкими к семантике машинного кода и ориентированными на команды конкретного процессора; и высокого уровня (Fortran; PL/l и др.) – языки, которые не зависят от конкретных компьютерных архитектур и позволяют программировать алгоритмы решения практически любых задач.
Важность выбора языков при разработке САПР ТП трудно переоценить. Все языковые проблемы не могут быть разрешены введением одного универсального языка проектирования, как правило, мало известного проектировщику и создающего для него психологический барьер при использовании системы. Эффективное использование языков программирования требует специальных знаний и владения современными технологиями программирования. Разработка на их основе специализированных программных комплексов для САПР ТП весьма трудоемка.
Данные обстоятельства привели к необходимости создания специальных, удобных для проектировщика, языков, превращающих систему в собеседника, «понимающего» профессиональный язык проектировщика и «беседующего» с ним на этом языке. В результате были разработаны алгоритмические языки – проблемно-ориентированные языки (ПОЯ), ориентированные на определенные объекты проектирования и проектные процедуры.
Известны два подхода к созданию ПОЯ. В первом из них ПОЯ строят таким образом, что описание любой задачи и задания на ее решение в основном включают оригинальные термины физического и функционального содержания. Переход от описания задачи к компьютерной программе ее решения и непосредственному выполнению на технических средствах осуществляется далее автоматически с помощью соответствующих программных средств – трансляторов и интерпретаторов данного языка.
Транслятор –программный комплекс, автоматически переводящий описание алгоритма решения задачи с алгоритмического языка (исходного языка) в эквивалентную ей программу на результирующем (выходном) языке.
Компилятор –частный случай транслятора – осуществляет перевод исходной программы с алгоритмического языка на машинный.
Интерпретаторотличается от транслятора тем, что он не генерирует результирующую, а сразу же выполняет исходную программу в соответствии с ее смыслом, заданным семантикой исходного языка.
Во втором случае, например, при решении геометрических задач инженерного типа, ПОЯ соединяет в себе средства алгоритмического языка высокого уровня для решения вычислительных математических задач и специальные языковые средства моделирования геометрических объектов. В этом случае используют транслятор или интерпретатор алгоритмического языка высокого уровня, дополненный необходимыми специальными программами.
По сути ПОЯ, хотя и называются языками, на самом деле представляют собой комплекс лингвистических и программных средств. К ПОЯ предъявляются следующие требования:
· наличие набора средств, полностью обеспечивающих решение задач, относящихся к проблемной области языка, в том числе программных модулей, реализующих все базовые функции языка. Этот набор модулей называют библиотекой базовых функций ПОЯ;
· развитие ПОЯ по горизонтали и вертикали. Развитие по горизонтали означает расширение функциональных возможностей языка за счет введения новых базовых функций, описываемых терминами языка, развитие ПОЯ по вертикали связано с переходом к более высокому уровню его организации;
· гибкость ПОЯ, означающая, в частности, возможность использования аббревиатур терминальных символов и символов-синонимов;
· наличие средств автоматического выявления синтаксических ошибок, их отображения и контроля правильности выполнения директив;
· возможность работы с ПОЯ в пакетном и интерактивном (диалоговом) режимах с использованием принципа «умолчания», когда система выбирает дальнейший ход решения по типовой схеме, если пользователь не указывает иной путь (умалчивает свое решение);
· легкая осваиваемость, язык должен включать в себя подсистему обучения, которая информирует пользователя о его неправильных действиях и рекомендует правильные.
Полноценный ПОЯ должен включать в себя набор терминов; интерпретатор с ПОЯ; средства синтаксического анализа; библиотеки базовых функций ПОЯ; средства интерпретирования директив; средства организации режимов макетного ввода-вывода и режима работы пользователя с меню; интерфейс для связи с СУБД; СУБД и база данных предметной области ПОЯ; средства расширения ПОЯ.
Взаимосвязи основных компонентов ПОЯ показаны на рисунке 5.1. В двойные рамки взяты компоненты, содержащие различного рода данные, а в простые – компоненты, выполняющие определенные операции с данными.
Набор терминов (терминальных символов) ПОЯ обеспечивает представление (или описание) алгоритма процесса проектирования в символах данного языка, которые должны быть по возможности близки к символам традиционного языка проектировщика.
Интерпретатор с ПОЯобеспечивает организацию ввода директив ПОЯ,их синтаксического разбора и контроля; выполняет обращения к библиотеке базовых функций языка; формирует и выводит диагностические сообщения в случае обнаружения синтаксических или семантических ошибок; выводит сервисную (обучающую) информацию по запросам пользователей; обеспечивает обращение к программным модулям организации режимов макетного ввода-вывода или меню и к другим возможным программным средствам ПОЯ.
Средства организации режимов обеспечивают взаимодействие проектировщиков с системой в режиме меню или ввода информации в соответствии с разработанными макетами ввода.
Средства синтаксического анализа выполняют лексический разбор текста в символах ПОЯна основании его синтаксиса; проверяют синтаксическую правильность директив (указаний, предписаний для выполнения); обеспечивают возврат в интерпретатор разобранного текста директивы, кода возврата и диагностических сообщений при обнаружении ошибок.
Библиотека базовых функций реализует семантику данного ПОЯ – обеспечивает преобразование терминов (терминальных символов) в конкретные целенаправленные действия. Включает системную и прикладную части. Системная часть объединяет программы, не зависящие от специфики конкретного ПОЯ (например, программы доступа к базам данных). Прикладную часть определяет проблемная функция данного ПОЯ.Программы из библиотеки базовых функций ПОЯ формируют его предметную область, используя при этом интерфейс по связи с СУБД, СУБД и базу данных о предметной области ПОЯ.
Рисунок 5.1 – Структура ПОЯ
Для решения задачи, записанной на ПОЯ, может быть сформирован набор указаний (директив). Такой набор называют макросом. Макрос может быть представлен одним термином (терминальным символом), воспринимаемым и раскрываемым интерпретатором как указанный набор (последовательность) директив.
Средства пакетирования директив обеспечивают создание и отладку новых директив ПОЯ и макросов с включением их в систему. Средства добавления макросов обеспечивают возможность расширения ПОЯ по вертикали.
Средства организации режимов, меню, а также средства формирования макетов (экранных форм) обеспечивают интерфейс пользователя, через который он взаимодействует с системой. Пользователь формирует на экране терминала ввода-вывода запрос на соответствующем ПОЯ с указанием режима работы (пакетного или диалогового). Ввод необходимых данных в систему обеспечивают путем заполнения выдаваемого системой макета. Получив ответ на директиву, пользователь либо выбирает в представленном меню одно из предлагаемых ему дальнейших действий, либо дает возможность работать системе «по умолчанию». Все переходы из одного режима работы в другой предписывают директивы ПОЯ. При работе в любой момент может быть вызвана сервисная справочная информация (обучающая функция). Вывод справочной информации не влияет на выполнение директив.
Пользователь, при наличии соответствующих полномочий (доступа), с помощью средств пакетирования директив может создавать новые директивы (макросы) и пополнять лексику ПОЯ, одновременно расширяя его возможности.
Возможности ПОЯ имеют исключительно важное значение при автоматизированном проектировании. Они не только непосредственно влияют на производительность и уровень автоматизации проектирования, но и определяют сложность и характер работ пользователей со средствами САПР ТП, могут сделать эти работы более привлекательными и наоборот. Интерфейс пользователя САПР ТП должен быть «дружественным», что в значительной степени определяют возможности ПОЯ. Вопросам разработки эффективных и совершенных языков проектирования надлежит уделять самое серьезное внимание.
Существуют специальные методики и программные средства, облегчающие и значительно сокращающие трудоемкость создания ПОЯ. При разработке визуальных средств ПОЯ может использоваться, например, метасистема, позволяющая на основании заданной формальной грамматики, составленной по определенным требованиям, получать соответствующий синтаксический интерпретатор. Для разработки же программных модулей библиотеки базовых функций могут в принципе применяться любые алгоритмические языки высокого уровня. Создание нового ПОЯ не представляет чрезмерно сложной задачи, а в будущем станет еще проще. Однако из этого не следует, что надо разрабатывать как можно больше ПОЯ. Излишнее разнообразие ПОЯ препятствует обмену средствами САПР ТП, их интеграции, требует обучения специалистов работе с несколькими языками. Силы специалистов распыляются и отвлекаются на несовершенные разработки вместо объединения их для создания более совершенных средств автоматизации, в том числе ПОЯ.
Использование различных ПОЯ в САПР К и САПР ТП также недостаточно правомерно. Должны использоваться, по крайней мере, одинаковые средства описания самих изделий на стадиях конструирования и проектирования технологии. Для решения задач, не связанных собственно с изделием, например, выбора режущего инструмента и определения режимов обработки в принципе может использоваться специальный ПОЯ.
Проблемы интеграции САПР ТП с другими системами автоматизации поддержки ЖЦИ, а также развития и совершенствования средств автоматизации производственных систем требуют особенно тщательной проработки базового лингвистического обеспечения.
Становление и развитие ПОЯ, составляющих основу лингвистического обеспечения САПР ТП, исторически связано с разрешением проблемы автоматизации подготовки управляющих программ для станков с ЧПУ.
Управляющая программа –совокупность перемещений рабочих органов, подготовительных, технологических и вспомогательных команд, обеспечивающих обработку заготовки на станке с ЧПУ. Существует несколько языков, позволяющих сделать информацию приемлемой для системы ЧПУ. В большинстве систем используют код ISO-7bit (ГОСТ 27463—87 «Система обработки информации. 7-битные кодированные наборы символов»).
Управляющая программа представляет собой последовательность предложений, называемых кадрами. Каждый кадр содержит одну или несколько команд по обработке заготовки на станке. Кадры отделяются друг от друга символом «перевод строки». Каждый кадр состоит из слов и начинается со слова, задающего его номер. Здесь под словом понимают соответствующую символьную конструкцию (последовательность символов). Каждое слово соответствует определенной группе команд и параметров. Принят следующий формат кадра управляющей программы: номер кадра – подготовительные команды – геометрические параметры – технологические параметры – вспомогательные команды – «перевод строки».
Подготовка управляющей программы в неавтоматизированном режиме включает в себя собственно проектирование операции, выполняемой на станке с ЧПУ с определением последовательности переходов, параметров применяемого инструмента и режимов обработки; подготовку входной геометрической и технологической информации к кодированию; кодирование информации и написание текста управляющей программы; занесение управляющей программы на программоноситель (перфолента, магнитный диск); отладку и корректировку программы на холостых ходах и при обработке пробных деталей.
Значительность числа действий (этапов) подготовки управляющей программы, возможность внесения субъективных ошибок и неточностей на каждом из них и, как следствие, высокая трудоемкость и стоимость подготовки управляющих программ в свое время сделали актуальной проблему автоматизации подготовки управляющих программ для станков с ЧПУ. Данная проблема нашла успешное разрешение в создании соответствующего класса средств автоматизации – систем автоматизированного программирования (САП).
Основу любой САП составляет ПОЯ описания номинальных геометрических параметров заготовки в состоянии, соответствующем завершению ее обработки на станке с ЧПУ. Пользователь указывает также модель устройства ЧПУ, параметры применяемого инструмента, режим обработки, желательное направление относительного движения инструмента и заготовки.
На основании данных, введенных в программу, написанную на ПОЯ, САП обеспечит выполнение необходимых промежуточных расчетов траектории относительного движения инструмента и заготовки, автоматическое кодирование геометрической и технологической информации, нанесение управляющей программы на программоноситель. Пользователь получает практически готовую для отладки управляющую программу достаточно высокого качества. Кроме того, он при необходимости имеет возможность вмешаться is процесс подготовки, который может протекать как в пакетном, так и диалоговом режимах. Средства визуализации траектории относительною движения инструмента и заготовки позволяют оптимизировать ее параметры.
Первой проблемно-ориентированной САП была система APT, разработанная в 1955 году в Массачусетском технологическом институте (США) для программирования фрезерных станков. Она предназначалась для того, чтобы инженер мог без всяких вычислительных работ символически описать обрабатываемую заготовку, траекторию движения инструмента относительно обрабатываемой заготовки и все другие виды работ, которые следовало выполнить. Более развитая система АРТ-3 была введена в эксплуатацию в 1961 году на IBM-7090 и представляла собой ПОЯ программирования для описания 2 – 5-координатной обработки с запасом около 300 слов.
Программа на языке АРТ-3 состоит из последовательности операторов, каждый из которых предписывает некоторое действие или фиксирует некоторые факторы, например:
· включить охлаждение;
· передвинуть инструмент в точку РТ1;
· через точки РТ1и РТ2провести прямую.
В свою очередь, операторы состоят из слов и специальных символов. Слова выбираются таким образом, чтобы их смысловые значения максимально отражали специфику описываемого процесса. Поэтому для обозначения основных понятий используют слова из области технологии, геометрии, топологии: TOOL (инструмент), DRILL (сверление), MILL (фрезерование), POINT (точка), CIRCLE (окружность), ATANGL (под углом к), CENTER (центр), GROOV (цилиндр), AXIS (ось), SIDE (сторона), INSIDE (внутренняя сторона), OUTSIDE (внешняя сторона), LEFT (левая сторона), RIGHT (правая сторона), LINE (прямая) и т.д.
Положение геометрических элементов относительно выбранной системы координат задают с помощью геометрических выражений. Как правило, геометрическое выражение состоит из управляющего слова, списка параметров и модификатора. При описании геометрические элементы могут задавать в неявной форме относительно некоторых других «базовых» элементов, описанных ранее. Управляющее слово определяет тип описываемого элемента (точка, окружность и др.). Список параметров состоит из нескольких параметров, определяющих как размеры самого геометрического элемента (например, диаметр), так и положение этого элемента относительно описанных ранее элементов. Модификатор используется для уточнения положения описываемого элемента или выбора одного из нескольких возможных вариантов.
В АРТ-3 содержится около 100 геометрических понятий, из них 10 – для определения точек, 11 – для задания прямых, 10 – для определения окружностей. Кроме того, могут быть заданы плоскости, векторы, эллипсы, гиперболоиды, цилиндры и другие поверхности второго порядка.
Например, геометрически можно задать выражения: POINT/ 3, 5; 7, 9 – точка с координатами (3, 5; 7, 9); CIRCLE/CENTER, РТ, RADIUS, 7 – окружность с центром в точке РТ и радиусом 7 мм.
На рисунке 5.2 показан контур детали и его описание на ПОЯ АРТ-3. М0, ..., M7 – граничные точки контура; L1, ..., L6 – ограничивающие контур отрезки прямых; С1 – ограничивающая контур дуга окружности.
Рисунок 5.2 – Контур детали и его описание на ПОЯ АРТ-3
Идеи, заложенные в ПОЯ системы APT, были применены и развиты в нескольких десятках АРТ-подобных систем: AUTOSPOT, AUTOMAP, AUTOPROMT, ADAPT, SYMAP, ЕХАРТ, СОМРАС и др.
Первой отечественной системой, использующей ПОЯ была САП-2. Первая версия этой системы была завершена в 1963 году. САП-2 разработана для автоматической подготовки управляющих программ к станкам с ЧПУ для двухкоординатной обработки деталей и допускает переход к плоскостям и параллельным координатам. Система позволяет программировать детали с контурами обработки, состоящими из отрезков прямых и дуг окружностей, выбрать точность их аппроксимации, определять скорости подач и радиус рабочего инструмента. Процессор системы САП-2 осуществляет перекодировку языковой программы, производит преобразование геометрической информации в стандартную математическую форму, осуществляет расчет параметров траектории движения центра режущего инструмента с учетом технологических особенностей обработки детали и формирует кадры для интерполятора.
Разработано значительное число отечественных систем различного назначения, каждая из которых использует собственный ПОЯ (СПС-ТАУ, СППС, ТЕХТРАН и др.).
На рисунке 5.3 показан эскиз детали, подготовленный для программирования в системе ТЕХТРАН, текст программы на ПОЯ ТЕХТРАН приведен в таблице 5.1.
Рисунок 5.3 – Эскиз детали-ролика (а) и его профильной части (б), подготовленный для программирования в системе ТЕХТРАН
Таблица 5.1 – Текст программы обработки детали-ролика на ПОЯ ТЕХТРАН
Строка
Адреса и замечания
Д
Е
Т
А
Л
Ь
Р
О
Л
И
К
С
Т
А
Н
О
К
К
Ф
П
Е
Ч
Т
Е
К
С
Т
В
С
Е
Ч
Е
Р
Т
Е
Ж
В
К
Л
П
Е
Р
О
В
Н
Т
Ч
=
,
Т
Ч
=
-
.
,
-
.
К
Р
=
Т
Ч
,
П
Р
=
К
Р
,
Х
Б
,
-
Т
Ч
=
,
-
.
П
Р
=
Т
Ч
,
К
Р
=
Х
Б
,
П
Р
,
Υ
Б
,
П
Р
,
Т
Ч
=
,
-
.
П
Р
=
Т
Ч
,
С
Л
Е
В
А
,
К
Р
Т
Ч
=
,
П
Р
=
Т
Ч
,
Т
Ч
=
-
.
,
-
.
П
Р
=
Т
Ч
.
-
Т
Ч
=
-
.
,
-
.
П
Р
=
Т
Ч
,
К
Р
=
Υ
Б
,
П
Р
,
Υ
Б
,
П
Р
,
,
П
Р
=
С
П
Р
А
В
А
,
К
Р
,
С
Л
Е
В
А
,
К
Р
Т
Ч
=
-
.
,
П
Р
=
Т
ч
,
Т
Ч
=
,
-
Т
Ч
=
-
.
,
-
И
Н
С
Т
Р
М
Е
Т
О
Д
Л
И
Н
К
Р
У
Г
И
З
Т
Ч
Ш
П
И
Н
Д
Л
,
П
Р
Ч
С
П
О
Д
А
Ч
А
М
М
И
Н
И
Д
И
Д
О
П
Р
Д
О
П
Р
К
О
Р
Р
Е
К
В
К
Л
Х
К
О
О
Р
Д
,
Υ
К
О
О
Р
Д
,
О
Х
Л
А
Д
В
К
Л
П
О
Д
А
Ч
А
М
М
И
Н
В
Л
Е
В
О
П
Р
К
А
С
К
Р
В
П
Е
Р
Е
Д
К
Р
К
А
С
П
Р
В
П
Е
Р
Е
Д
П
Р
К
А
С
К
Р
В
П
Е
Р
Е
Д
К
Р
К
А
С
П
Р
В
П
Е
Р
Е
Д
П
Р
К
А
С
К
Р
В
П
Е
Р
Е
Д
К
Р
К
А
С
П
Р
В
П
Е
Р
Е
Д
П
Р
З
А
П
Р
П
О
Д
А
Ч
А
М
М
И
Н
В
Т
О
Ч
К
У
Т
Ч
Б
Ы
С
Т
Р
О
П
Д
Г
У
Н
О
Х
Л
А
Д
В
Ы
К
Л
К
О
Н
Е
Ц
В САПР технологических операций были использованы, в основном, те же принципы построения ПОЯ, но с расширением их функций. Рассматриваемые системы обеспечивают на основании описания геометрическо-технологических параметров заготовки до и после обработки:
проектирование технологической операции, включая определение числа и последовательности переходов, выбор инструмента, определение стратегии съема припуска и режимов обработки;
автоматизированную подготовку управляющих программ для станков с ЧПУ (функции САП).
Основной режим работы современных САПР технологических операций – диалоговый и ПОЯ обеспечивает описание геометрически-технологических параметров предмета производства и условий выполнения операций, а также поддержку режима диалога пользователя с системой.
Возможности современных ПОЯ позволяют создание объемных моделей предмета производства за счет использования описываемых в терминах языка процедур, например, контактно-плоскостного и взаимопроникающего соединения элементарных тел.
С целью унификации ПОЯ, используемых в отечественных САПР ТП, в начале 80-х гг. XX в. был разработан стандарт «Входной язык для технологического проектирования. Язык описания детали». Он устанавливал общие правила построения языка описания информации о детали, как элемента входного языка САПР ТП. В соответствии с этим стандартом полное формализованное описание детали включало данные для ее идентификации, общие данные о ней, описание базовых структурных элементов детали и формообразующих, размерных и точностных связей. К общим сведениям о детали относили ее габаритные размеры, обозначение материала и его физико-механических свойств, а также специальные указания. Информация о базовых структурных элементах детали включала совокупность параметров, однозначно определяющих форму, размеры, шероховатость и отклонение от правильной геометрической формы каждой поверхности, а также ее физико-механические свойства. Описание формы производного элемента и детали как единого целого выполнялось с использованием отношений: «соединение», «отсечение» и «пересечение». Размерные связи между элементами задавались линейными, угловыми или смешанными размерными цепями в системе координат детали. Развитие методологии автоматизированного технологического проектирования, совершенствование технических и программных средств САПР ТП сделали малоактуальными методические подходы, регламентированные упомянутым стандартом.
В современных САПР ТП и интегрированных САПР применяют, как правило, ПОЯ оригинальной разработки, наиболее соответствующие, по мнению разработчиков, общей концепции построения конкретной системы.
Частной разновидностью ПОЯ признаются языки программирования баз данных. Большинство современных СУБД, преимущественно реляционных, применяемых в САПР ТП, взаимодействуют с базами данных на языке SQL.
SQL является языком программирования высокого уровня и характеризуется использованием при написании программ знаковой системы, близкой к естественным человеческим языкам. Идея такого языка сводилась к набору из нескольких фраз-примитивов английского языка («выбрать», «обновить», «вставить», «удалить» и т.д.), через которые пользователь – не программист ставил бы вопросы к СУБД по своим информационным потребностям. В этом случае дополнительной функцией СУБД должна быть интерпретация этих «вопросов» на низкоуровневый язык машинных кодов для непосредственной обработки данных и представления результатов пользователю.
SQL изначально развивался как декларативный язык программирования, используемый для выражения определений. Впоследствии стандарт SQL воспринял тенденцию описания формальных действий, процедур, а равно объектно-ориентированной парадигмы и был дополнен (последняя модификация стандарта SQL:2003) за счет новых типов данных, операторов и функций.
В профессиональных СУБД язык базы данных часто дополняется элементами, заимствованными из универсальных алгоритмических языков программирования, например, библиотеками функций языка C++. Свои модификации языка SQL имеют практически все развитые профессиональные СУБД — Oracle, SyBase, Informix, Ingres, DB2, отечественная СУБД ЛИНТЕР. SQL-программы, подготовленные для разных СУБД, как правило, несовместимы друг с другом.
Наметилась тенденция встраивания развитых языков программирования высокого уровня и в СУБД для конечных пользователей (настольные СУБД). В качестве примера можно привести СУБД Access фирмы Microsoft, имеющий один из наиболее развитых интерфейсов по созданию и работе с базами данных для конечных пользователей. При этом в системе наличествует встроенный язык VBA (Visual Basic for Application), являющийся диалектом языка Visual Basic.
При разработке САПР ТП используют как процедурный, так и декларативный подходы.
Декларативный подход применяют, например, при определении основных понятий предметной области автоматизированной системы и установления связей между объектами, определяемыми этими понятиями, в экспертных компонентах САПР ТП.
Современные языки программирования высокого уровня (Object Pascal, C++ и др.) являются процедурно-декларативными. С их помощью можно решать любые задачи программирования, используя как процедурный, так и декларативный подходы.
Распространенными средами программирования для создания САПР ТП в настоящее время являются системы Visual C++, C++ Builder и т.д.