Оператор определения начальной метки NC-подпрограммы <NCSUB.STARTLABEL>

Возвращает строковое значение начальной метки NC-подпрограммы, а также позволяет присвоить строковому значению начальной метки NC-подпрограммы произвольное текстовое значение.

Формат:

S$ = NCSUB.STARTLABEL(<Номер NC-подпрограммы>)

или

NCSUB.STARTLABEL(<Номер NC-подпрограммы>) = S$

Описание:

  • <Номер NC-подпрограммы> – уникальный идентификатор NC-подпрограммы.

  • <S$> – произвольная строковая переменная. Во втором случае также может задаваться строковая константа или произвольное выражение, возвращающее строку.

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

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

Обычно на момент начала трансляции технологических команд в УП место расположения конкретной подпрограммы в тексте УП неизвестно. В этот момент начальная метка NC-подпрограммы установлена в значение по умолчанию <SLabelNxxx>, где <xxx> – номер NC-подпрограммы. В процессе реализации NC-подпрограммы, т.е. вывода ее в УП, становится возможным определить начальную метку. Поэтому, в процедуре обработки команды начала подпрограммы <PPFUN STARTSUB(50)> следует использовать оператор установки начальной метки подпрограммы:

NCSub.StartLabel(CLD[2]) = S$ ! Присвоение начальной метки

  • <S$> – строковая переменная или произвольное выражение, возвращающее строку, соответствующую метке или номеру кадра подпрограммы.

  • <CLD[2]> – номер NC-подпрограммы переданный через предопределенный массив параметров технологической команды <CLD>.

Примечание: При включенной автоматической нумерации кадров управляющей программы, перед началом выполнения процедуры обработки команды начала подпрограммы <PPFUN STARTSUB(50)> начальной метке автоматически присваивается текущее значение регистра номера кадра. Если это значение устраивает, то можно не использовать оператор для присвоения значения начальной метки.

При вызове подпрограммы обычно требуется определить, где расположена данная подпрограмма. Поэтому в процедуре обработки команды вызова подпрограммы <PPFUN CALLSUB(52)> следует использовать оператор определения начальной метки подпрограммы.

S$ = NCSub.StartLabel(CLD[2]) ! Получение начальной метки

Затем следует вывести данную метку в текст управляющей программы в нужном формате.

Примечание: Если выполнение процедуры обработки команды вызова подпрограммы <PPFUN CALLSUB(52)> производится раньше, чем произошло присвоение значения начальной метки (до того как подпрограмма выведена в УП), то оператор определения начальной метки вернет значение по умолчанию вида <SLabelNxxx>". После окончания трансляции всей управляющей программы, если подпрограмма была выведена в УП, и метке было присвоено новое значение, отличающееся от значения по умолчанию, производится замена всех значений по умолчанию в тексте УП на вновь присвоенную метку.

В этом случае преобразования, осуществляемые над строкой, содержащей значение метки (значение по умолчанию вида <SLabelNxxx>), не должны нарушать целостность выражения по умолчанию, иначе результат трансляции УП может оказаться неверным. В таких случаях преобразования над строкой метки следует производить не при получении значения метки, а перед присвоением значения метки, в процедуре обработки команды начала подпрограммы <PPFUN STARTSUB(50)>.

Сопутствующие ссылки:

Операторы работы с NC-подпрограммами

Оператор определения конечной метки NC-подпрограммы <NCSUB.ENDLABEL>