Дополнительные возможности Windchill > Управление производственным процессом > Настройка навигатора технологических процессов
  
Настройка навигатора технологических процессов
Технологические процессы - это подробные описания действий в мастерской, необходимых для производства, контроля, ремонта или поддержки данной детали или сборки. Они содержат операции для выполнения, порядок, в котором они должны быть выполнены, необходимые физические ресурсы, производства и квалификации, ссылки на документы, текстовые описания, а также временные и ценовые требования.
При помощи технологических процессов Windchill MPMLink можно определить следующие элементы:
операции, необходимые для производства изделия;
последовательности выполнения этих операций;
время, затраты и ограничения для каждой операции;
физические ресурсы и квалификации, требуемые для выполнения операции;
детали, необходимые для изготовления изделия, а также способ их использования в производственном процессе.
В Windchill MPMLink технологические процессы используются также для создания руководств по выполнению работ в цеху. Руководство по выполнению работ представляет собой пошаговые инструкции, которые используются в мастерской при производстве, контроле, ремонте или поддержке деталей. Руководство по выполнению работ является динамически сгенерированным HTML-документом, в котором объединены сведения о технологических процессах (последовательностях, операциях, назначениях деталей, назначениях ресурсов, времени и т. д.) и все связанные документы, например чертежи, изображения и трехмерные сессии с аннотациями.
Создание пользовательских формул
Набор формул используется для связывания набора атрибутов с соответствующими формулами или уравнениями, которые будут использоваться для расчета их значений. Набор формул составляют следующие компоненты:
FormulaSet определяет набор
FormulaMetaData определяет наименование и описание для формулы Java
FormulaValuatedLink связывает наименование атрибута с определением формулы
Следующий рисунок - это пример данных, которые нужно создать, чтобы добавить пользовательские формулы:
Вкладка "Наборы формул" используется для выбора ранее определенных наборов формул, которые можно применить для расчета времени и стоимости, связанных с операцией. Например, наборы стандартных и периодических формул времени и стоимости. Эти наборы формул учитывают количество деталей, которые будут произведены в операции, и используют спецификации, определенные для рабочего центра (например, время подготовки или время ожидания в очереди). Формулы и наборы формул используются при выборе действия "Вычислить время и затраты" и при загрузке технологических процессов и операций в навигатор производственных диаграмм Ганта.
С рабочим центром можно связать несколько наборов формул и один из них обозначить как используемый по умолчанию. Именно этот набор формул назначается операции, когда ей назначается рабочий центр.
* 
Формулы должны быть назначены набору формул. Если существующего набора формул нет, его необходимо определить прежде, чем можно будет определить пользовательскую формулу. PSE можно настроить так, чтобы разрешить использование PSE для добавления дополнительных значений в специализированные наборы формул. Дополнительные сведения см. в документации PSE.
Чтобы создать новую пользовательскую формулу, используйте следующую процедуру:
1. С помощью утилиты LoadFromFile загрузите XML-файл загрузки, где значение <csvname> уникально для системы. Этот файл загрузки должен содержать все следующие элементы:
csvFormulaSet - создает объект FormulaSet.
csvFormulaMetaData - создает объект FormulaMetaData.
csvAddFormulaMetaData - связывает FormulaMetaData с FormulaSet.
<csvFormulaSet handler="com.ptc.windchill.mpml.formula.LoadFormula.
createFormulaSet">
<csvuser></csvuser>
<csvname>Standard Time and Cost</csvname>
<csvdescription>This formula Set is used to calculate the time and
cost of an Operation</csvdescription>
<csvfolder>/Default/Design</csvfolder>
<csvparentcontextPath></csvparentcontextPath>
<csvorganizationName></csvorganizationName>
</csvFormulaSet>
2. Создайте метаданные формулы с использованием ссылки на имя Java-класса, реализующего интерфейс Formula и возвращающего вычисленное значение. Например, FloatingPointWithUnits.
Используя утилиту LoadFromFile, загрузите XML-файл загрузки, где значение <csvname> уникально для системы, а <csvformulaClassName> - это Java-класс, реализующий интерфейс формулы.
<csvFormulaMetaData handler="com.ptc.windchill.mpml.formula.
LoadFormula.createFormulaMetaData">
<csvuser></csvuser>
<csvname>StandardAttributeValueFormulaTime</csvname>
<csvdescription>Standard Attribute Value Formula</csvdescription>
<csvtype>time</csvtype>
<csvformulaClassName>com.ptc.windchill.mpml.formula.Standard AttributeValueFormula</csvformulaClassName>
<csvfolder>/Default/Design</csvfolder>
<csvparentcontextPath></csvparentcontextPath>
<csvorganizationName></csvorganizationName>
<csvorganizationID></csvorganizationID>
</csvFormulaMetaData>
3. Свяжите метаданные формулы с набором формул, использовав наименование атрибута.
Например, при вызове службы для расчета формулы будут выполнены все метаданные формулы, связанные с набором формул, и возвращена карта всех вычисленных значений, использующая наименование атрибута в качестве ключа.
Используя утилиту LoadFromFile, загрузите XML-файл загрузки, где <csvattributeName> - это повторно используемый атрибут времени и стоимости в объекте MPMOperation
<csvAddFormulaMetaData handler="com.ptc.windchill.mpml.formula.
LoadFormula.addFormulaMetaDataToFormulaSet" >
<csvformulaSetName>Standard Time and Cost</csvformulaSetName>
<csvformulaMetaDataName>StandardAttributeValueFormula Time</csvformulaMetaDataName>
<csvattributeName>IBA|MPM_Attr_MPMOperationSetupTime </csvattributeName>
</csvAddFormulaMetaData>
При создании Java-класса, реализующего интерфейс Formula, эти входные данные доступны по умолчанию в карте входных данных.
FormulaHelper.FORMULAVALUATED: объект, на который ссылается набор формул, приводится к типу ForumlaValuated.
FormulatHelper.FORMULAVALUATED_TI: экземпляр типа объекта, на который ссылается набор формул, приводится к типу TypeInstance. Его значение может быть равно null.
FormulaHelper.FORMULAVALUATED_ATTRIBUTE_NAME: наименование атрибута, используемое для связывания метаданных формулы с набором формул, приводится к типу String. Используется как ключ в карте результатов.
FormulaHelper.LOT: значение партии, указанное пользователем в контексте действия "Вычислить время и затраты". Приводится к типу Double.
Ниже показан пример Java-класса для формулы:
import com.ptc.core.meta.common.AttributeIdentifier;
import com.ptc.core.meta.common.AttributeTypeIdentifier;
import com.ptc.core.meta.common.TypeinstanceIdentifier;
import com.ptc.core.meta.context.common.AttributecontextSpec
import com.ptc.core.meta.server.TypeIdentifierUtility;
import com.ptc.core.meta.type.common.TypeInstance;
import com.ptc.core.meta.type.common.TypeInstanceFactory;
import com.ptc.windchill.mpml.MPMLinkHelper;
import java.text.NumberFormat;
import java.util.HashMap;
import wt.units.FloatingPointWithUnits;
import wt.util.WTContext;
import util.WTException;
public class StandardAttributeValueFormula implements Formula{
private static final String RESOURCE = "com.ptc.windchill.mpml.formula.formulaResource";
private static NumberFormat numberFormat =
NumberFormat.getInstance(WTContext.getContext().getLocale());
/** Creates a new instance of StandardAttributeValueFormula */
* This Formula simply return the value of the attribute.
public StandardAttributeValueFormula() {
}
public FloatingPointWithUnits calculate(HashMap inputs)throws
InvalidFormulaInputException, WTException{
//Get the object on which the formula is call
Object object = inputs.get(FormulaHelper.FORMULAVALUATED);
//Get the TI on which the formula is call
TypeInstance ti =(TypeInstance)inputs.get(FormulaHelper.FORMULAVALUATED_TI);
//Get the attribute that is calculated by the formula
String attribute_name = (String)inputs.get(FormulaHelper.FORMULAVALUATED_ATTRIBUTE_NAME);
if(object == null)
throw new InvalidFormulaInputException( RESOURCE, formulaResource.REQUIRED_FORMULA_INPUT_MISSING, new Object[]{FormulaHelper.FORMULAVALUATED} );;
TypeInstanceIdentifier tii = null;

//Get the TI of the object if null
if(ti==null){
tii = TypeIdentifierUtility.getTypeInstanceIdentifier(object);
ti = TypeInstanceFactory.newTypeInstance(tii);
}else
tii = (TypeInstanceIdentifier)ti.getIdentifier();
//Get ATI for the attribute to calculate
AttributeTypeIdentifier ati = (AttributeTypeIdentifier)MPMLinkHelper.getIdentifierFactory().get(attribute_name,tii.getDefinitionIdentifier());
AttributeIdentifier[] ais = ti.getAttributeIdentifiers(ati);
//If the attribute value is not in the TI, update it to get the value
if(ais.length<1){
AttributecontextSpec fl = new AttributecontextSpec();
fl.putEntry(ati);
ti = MPMLinkHelper.updateTypeInstance(new TypeInstance[] {ti}, fl, null)[0];
ais = ti.getAttributeIdentifiers(ati);
}
//Get the attribute value
Object value = null;
if(ais.length>0)
value = ti.get(ais[0]);
//Return the value of the attribute if it’s a FloatingPointWithUnits
if(value instanceof FloatingPointWithUnits)
return (FloatingPointWithUnits)value;
// value is null
return FloatingPointWithUnits.valueOf(numberFormat.format(0));
}
}
* 
В формулу также можно добавить больше входных данных, создав новое действие, а затем использовать службы формулы, чтобы вызвать выполнение набора формул. Дополнительные сведения о создании новых действий см. в документации PSE.
Включение периодической формулы времени и стоимости
Чтобы включить периодическую формулу времени и стоимости, используйте следующую процедуру:
1. Запустите утилиту Управление типами и атрибутами.
2. В окне Управление повторно используемыми атрибутами выберите организатор Resource_Attribute_Org.
3. Вставьте новый атрибут со следующими свойствами:
Наименование: MPM_Attr_SetupLotInterval
Тип данных: вещественное число
Внутреннее наименование: MPM_Attr_SetupLotInterval
Описание: "Отображаемое наименование" и "Иерархическое отображаемое наименование": настройка интервала партии
4. Вставьте новый атрибут со следующими свойствами:
Наименование: MPM_Attr_SetupTimeDuringProcessing
Тип данных: вещественное число
Внутреннее наименование: MPM_Attr_SetupTimeDuringProcessing
Описание: "Отображаемое наименование" и "Иерархическое отображаемое наименование": настройка интервала партии
5. Вставьте новый атрибут со следующими свойствами:
Наименование: MPM_Attr_SetupCostDuringProcessing
Тип данных: вещественное число
Внутреннее наименование: MPM_Attr_SetupCostDuringProcessing
Описание: "Отображаемое наименование" и "Иерархическое отображаемое наименование": настройка стоимости в процессе обработки
6. На панели Управление типами отредактируйте тип рабочего центра в меню Мастер детали > Ресурс > Ресурс, назначаемый на операцию
7. На вкладке Шаблон выберите Корень атрибутов, щелкните Добавить атрибут и свяжите три ранее созданных атрибута с типом рабочего центра.
8. Запустите редактор производственных ресурсов.
9. Возьмите на изменение каждый из существующих рабочих центров и задайте значение на вкладке информации для атрибутов "Настройка интервала партии", "Настройка времени в процессе обработки" и "Настройка стоимости в процессе обработки". После задания всех атрибутов сдайте рабочий центр на хранение.
Изменение единиц измерения для накопленных значений времени и стоимости
Функция накопления времени и затрат навигатора технологических процессов не использует единицы системы измерений, принятые по умолчанию.
Чтобы изменить единицы измерения для агрегирования времени и стоимости, необходимо отредактировать следующие свойства:
com.ptc.windchill.mpml.CumulatedTimeAndCostActionTimeUnit
com.ptc.windchill.mpml.CumulatedTimeAndCostActionCostUnit
Эти свойства можно найти в следующем расположении:
codebase/com/ptc/windchill/mpml/xconf/mpmlin.properties.xconf
Значения по умолчанию - "min" и "$" соответственно.
Настройка руководств по выполнению работ
Шаблон руководства по выполнению работ, установленный вместе с Windchill MPMLink, можно настроить в соответствии с потребностями. Для настройки руководства по выполнению работ необходимы базовые знания JSP и Info*Engine.
Задания Info*Engine используются для сбора информации, которая должна отображаться в руководстве по выполнению работ, а JSP применяется для расположения и форматирования отображения этой информации:
Расположение
Описание
<WT_Home>\codebase\netmarkets\jsp\ mpml
Расположение JSP-страниц, используемых в руководствах по выполнению работ.
<WT_Home>\tasks\com\ptc\windchill\ mpml\workinstructions
Расположение заданий Info*Engine, используемых при сборе данных для руководства по выполнению работ.
<WT_Home>\codebase\com\ptc\windchill\ mpml\xconfs\ mpmlink.properties.xconf
Расположение свойств руководства по выполнению работ.
<WT_Home>\codebase\netmarkets/css/wor kInstructionStyles.css
Расположение таблицы стилей для руководства по выполнению работ. Этот файл можно использовать для смены как шрифтов, применяемых в руководстве по выполнению работ, так и цвета заголовков отчета.
JSP-страницы, используемые в руководствах по выполнению работ
В следующей таблице перечислены и описаны JSP-страницы, используемые для настройки руководств по выполнению работ.
JSP
Описание
headerWorkInstruction.jsp
Создает изображение логотипа, которое выводится в верхнем углу отчета руководства по выполнению работ. Прямо рядом с логотипом выводит таблицу с информацией о технологическом процессе для операций, показанных в отчете. С правого края выводится информация из таблицы сборки, с которой связан данный технологический процесс.
configSpecWorkInstruction.jsp
Создает таблицу спецификаций конфигурации, используемой в отчете руководства по выполнению работ. Для данного отчета допустимы три типа спецификаций конфигурации: стандарт, опорная структура и ограничение применимости. Показываются значения для критериев расширения, примененных к данным при запуске отчета руководства по выполнению работ.
operationHeaderWorkInstruction.jsp
Показывает с левого края информацию, созданную в sequenceHeaderWorkInstruction.jsp. Создает номер метки для операции или подоперации и помещает его рядом с номером последовательности. Под номером метки создает таблицу, показывающую наименование, число, версию и краткое описание данной операции.
operationDetailHeaderWorkInstruction. jsp
Создает таблицу под заголовком операций. Показывает подробности операции, включая используемые рабочие центры, время и затраты.
operationDetailWI.jsp
Создает таблицы с подробным описанием операции, связанными с ней деталями, выделенными ресурсами и связанными документами. Если в столбце Показано таблицы документов указано значение Да, то связанный документ является распознанным изображением, которое будет показано на панели руководства по выполнению работ слева от этих таблиц подробностей. У файлов изображений, которые можно показать в руководстве по выполнению работ, должно быть расширение, указанное в следующем свойстве:
com.ptc.windchill.mpml.WorkInstructi
onIllustrationFileExtensionAllowed
sequenceHeaderWorkInstruction.jsp
Если операции включены в последовательность, эта JSP-страница создает ссылки на операции ветвления и возврата. Если операция является подоперацией другой операции, эта JSP-страница создает ссылки на родительскую операцию.
footerWorkInstruction.jsp
Создает область нижнего колонтитула, отображаемую в конце каждого раздела операции. Показывает текущее состояние операции, ее статус, контроль, время начального создания, автора последнего обновления, а также дату и время последнего обновления.
coreWorkInstruction.jsp
Основная JSP-страница, формирующая отчет руководства по выполнению работ. Обрабатывает параметры URL-адреса и вызывает задания Info*Engine, использованные для сбора данных по операциям в составе технологического процесса. Если JSP-страница запущена из технологического процесса, она вызывает
processPlanLogicWorkInstruction.jsp
Если запущена из операции, она вызывает
operationLogicWorkInstruction.jsp
Эта JSP-страница также вычисляет родительские и дочерние взаимосвязи между операциями и операции ветвления и возврата в последовательности. Для каждой операции она вызовет JSP-страницы, которые создают таблицы и показывают данные, возвращенные заданиями Info*Engine.
operationLogicWorkInstruction.jsp
Info*EngineInfo*Engine
Запускает задания Info*Engine, которые находят все операции и типовые процедуры в составе операции. Операции сортируются по номеру метки операции. Этот файл JSP не отображает элементы в отчете.
processPlanLogicWorkInstruction.jsp
Запускает задания Info*Engine, которые находят все операции, последовательности и типовые процедуры в составе операции. Найденные операции сортируются по номеру метки операции. Этот файл JSP не отображает элементы в отчете.
Задания Info*Engine, используемые в руководстве по выполнению работ
В следующей таблице перечислены и описаны задания Info*Engine, используемые для сбора данных, применяемых в руководствах по выполнению работ.
Задание Info*Engine
Описание
describeAttributes.xml
Webject-команда в этом задании создает группу, в которой локализуются значения атрибутов. Эти локализованные значения затем отображаются в отчете руководства по выполнению работ.
getOperationData.xml
Webject-команды в этом задании запрашивают у операции данные, которые отображаются в отчете руководства по выполнению работ. Собираются следующие наборы данных: рабочий центр, процесс, детали, производственные возможности, ресурсы и документы. Каждый набор данных сохраняется в группе Info*Engine.
getOperationsAndStProceduresUnderAnOperation.xml
Webject-команды в этом задании создают группу, содержащую все подоперации и типовые процедуры первого уровня вложенности, найденные в составе конкретной операции.
getProcessPlanAndAssemblyInformation.xml
Webject-команды в этом задании создают группу, содержащую информацию о сборке, связанной с технологическим процессом.
getSequencesAndStProceduresUnderAProcessPlan.xml
Webject-команды в этом задании создают группу, содержащую все последовательности и типовые процедуры первого уровня вложенности, найденные в составе технологического процесса.
sortingOperations.xml
Webject-команды в этом задании создают группу, содержащую подоперации и типовые технологические процессы, найденные в составе конкретной операции. Операции и типовые технологические процессы на каждом уровне при этом сортируются. В настоящее время алгоритм не является рекурсивным - он выполняется на глубину вплоть до 3 уровней. То есть он найдет подоперации только на 3 уровнях, а затем остановится независимо от наличия подопераций с большим уровнем вложенности. Чтобы получить более глубокие уровни, следуйте образцу, примененному в этом задании, и добавьте соответственно дополнительные уровни.
sortingSequences.xml
Webject-команды в этом задании создают группу, содержащую подпоследовательности и типовые процедуры, найденные в составе конкретной последовательности. Последовательности и типовые процедуры на каждом уровне при этом сортируются. В настоящее время алгоритм не является рекурсивным - он выполняется на глубину вплоть до 3 уровней. То есть он найдет подпоследовательности только на 3 уровнях, а затем остановится независимо от наличия подпоследовательностей с большим уровнем вложенности. Чтобы получить более глубокие уровни, следуйте образцу, примененному в этом задании, и добавьте соответственно дополнительные уровни.
Свойства руководства по выполнению работ
Настройки руководства по выполнению работ
Руководства по выполнению работ можно настраивать по ряду причин, включая замену заголовка и логотипа собственными данными или предоставление более простых руководств по выполнению работ.
В следующей таблице перечислены некоторые общие настройки руководства по выполнению работ.
Настройки
Описание
Изменить единицы измерения времени для операции:
Измените следующий файл JSP:
timeUnit in coreWorkInstruction.jsp
Например, чтобы заменить секунды минутами, введите мин..
Изменить единицы измерения времени для шагов в операции:
Измените должным образом следующие файлы JSP:
setupTimeUnit
processingTimeUnit
LaborTimeUnit
queueTimeUnit,
teardownTimeUnit,
waitTimeUnit,
moveTimeUnit
Например, чтобы заменить секунды минутами, введите мин..
Переместить таблицу в руководстве по выполнению работ:
Перейдите в конец следующего файла JSP:
coreWorkInstruction.jsp
Затем перепроектируйте HTML-отображение.
Показать стоимость обработки для операции в руководстве по выполнению работ:
Перейдите в следующие задания:
getOperationsAndStProceduresUnder AnOperation.xml
sortingOperations.xml
Добавьте следующий атрибут в вышеупомянутые задания:
MPM_Attr_MPMOperationProcessingCost
Затем создайте столбец и данные для отображения в следующем файле JSP:
operationDetailHeaderWorkInstruction
.jsp
Изменить шрифт, размер или цвет заголовков в руководстве по выполнению работ:
Измените следующий файл CSS и файлы JSP, использующие определение в файле CSS:
workInstructionStyles.css
Изменить логотип в верхней части руководства по выполнению работ или в таблице операций:
Используйте следующую процедуру.
xconfmanager -d
com.ptc.windchill.mpml.WorkInstructionLogo=<logo> -t
codebase/wt.properties
где <logo> - это полный путь к GIF-файлу логотипа, который можно найти в следующей папке:
codebase\netmarkets\jsp\mpml
Значение по умолчанию ../../images/ptcLogo_workInstructions.gif соответствует папке codebase\netmarkets\images
Добавить тип расширения для файлов изображения:
Добавьте тип расширения в следующее свойство:
com.ptc.windchill.mpml.WorkInstructi
onIllustrationFileExtensionAllowed
Перестроить, удалить или добавить новые таблицы:
Измените следующий файл JSP:
coreWorkInstructions.jsp
Изменение нумерации операций
Windchill MPMLink нумерует операции последовательно, с приращением 10. Например, операция 10, операция 20 и т. д. Однако может возникнуть потребность настроить операции так, чтобы автоматическое увеличение выполнялось по другой схеме нумерации.
Чтобы изменить схемы нумерации, можно отредактировать следующие свойства:
wt.operationLabelIncrement
wt.operationLabelNumberOfCharacters
Например, чтобы получить метки операций из трех символов и с приращением 5 (005, 010), поместите следующее в файл site.xconf, а затем выполните команду xconfmanager - pF:
<Property name="wt.operationLabelIncrement" overridable="true" targetFile="codebase/wt.properties" value="5"/>
<Property name="wt.operationLabelNumberOfCharacters" overridable="true" targetFile="codebase/wt.properties" value="3"/>
Кроме того, чтобы изменить заполнение, используемое операцией (например, на что-то, отличное от 0), отредактируйте следующее свойство:
wt.operationLabelPaddingCharacter