Оператор определения конечной метки NC-подпрограммы <NCSUB.ENDLABEL>
Возвращает строковое значение конечной метки NC-подпрограммы, а также позволяет присвоить конечной метки NC-подпрограммы произвольную строку.
Формат:
S$ = NCSUB.ENDLABEL(<Номер NC-подпрограммы>)
или
NCSUB.ENDLABEL(<Номер NC-подпрограммы>) = S$
Описание:
<Номер NC-подпрограммы> – уникальный идентификатор NC-подпрограммы.
<S$> – произвольная строковая переменная. Во втором случае также может задаваться строковая константа или произвольное выражение, возвращающее строку.
Оператор может использоваться аналогично строковой переменной в выражениях и функциях обрабатывающих строки.
Оператор следует использовать для определения конечной метки NC-подпрограммы при выводе в управляющую программу строк, идентифицирующих конец подпрограммы. В качестве метки можно задать и номер кадра.
Обычно на начало трансляции технологических команд в УП место расположения конкретной подпрограммы в УП неизвестно. В это время конечная метка NC-подпрограммы установлена в значение по умолчанию <ELabelNxxx>, где <xxx> – номер NC-подпрограммы. В процессе реализации NC-подпрограммы, т.е. вывода ее в УП, становится возможным определить конечную метку. Поэтому в процедуре обработки команды конца подпрограммы <PPFUN ENDSUB(51)> следует использовать оператор определения конечной метки для установки конечной метки подпрограммы:
NCSub.EndLabel(CLD[2]) = S$ ! Присвоение конечной метки
Здесь:
<S$> – строковая переменная или произвольное выражение, возвращающее строку, соответствующую метке или номеру кадра подпрограммы.
<CLD[2]> – номер NC-подпрограммы переданный через предопределенный массив параметров технологической команды <CLD>.
Примечание: При включенной автоматической нумерации кадров УП перед началом выполнения процедуры обработки команды конца подпрограммы <PPFUN ENDSUB(51)> конечной метке автоматически присваивается текущее значение регистра номера кадра. В таких случаях можно не использовать оператор для задания конечной метки.
При вызове подпрограммы обычно требуется определить, где расположена данная подпрограмма. Поэтому в процедуре обработки команды вызова подпрограммы <PPFUN CALLSUB(52)> следует использовать оператор определения конечной метки подпрограммы:
S$ = NCSub.EndLabel(CLD[2]) ! Получение конечной метки
Затем следует вывести данную метку в текст управляющей программы в нужном формате.
Примечание: Если выполнение процедуры обработки технологической команды вызова подпрограммы <PPFUN CALLSUB(52)> производится раньше, чем произошло присвоение значения конечной метки (до того как подпрограмма выведена в УП), то оператор определения конечной метки вернет значение по умолчанию вида <ELabelNxxx>. После окончания трансляции всей УП, если подпрограмма была выведена в УП, и метке было присвоено значение отличающееся от значения по умолчанию, производится замена всех значений по умолчанию в тексте УП на вновь присвоенную метку.
В этом случае преобразования, осуществляемые над строкой, содержащей значение метки (значение по умолчанию вида <ELabelNxxx>), не должны нарушать целостность выражения по умолчанию, иначе результат трансляции УП может оказаться неверным. В таких случаях преобразования над строкой метки следует производить не при получении значения метки, а перед присвоением значения метки в процедуре обработки технологической команды конца подпрограммы <PPFUN ENDSUB(51)>.
Сопутствующие ссылки:
Операторы работы с NC-подпрограммами
Оператор определения начальной метки NC-подпрограммы <NCSUB.STARTLABEL>