Подпрограммы можно создавать в файлах slib*.nc (в папке NAND1-1) и в любой УП.
При создании в slib*.nc, эти подпрограммы загружаются в память при загрузке контроллера и постоянно там находятся.
При создании в УП, подпрограммы должны быть написаны, ПОСЛЕ основного кода. Любой код, который идёт после первой команды M99, кроме других подпрограмм, не выполняется.
При создании в УП и в в slib*.nc, каждая подпрограмма использует переменные #1-#49 независимо. То есть, назначение этих переменных в одной подпрограмме, не влияет на такие же номера переменных в других подпрограммах и в основном коде УП (если подпрограмма создана в УП).
Из подпрограмм, можно вызывать другие подпрограммы.
Если файл УП содержит ТОЛЬКО подпрограммы (не содержит основного кода), то первой вызывается номер подпрограммы, который установлен в настройке #77 Macro program file main program No.
Если там устанолен номер подпрограммы, которого нет в файле УП с только подпрограммами, то такой файл не будет выполнен.

Заняты номера подпрограмм:
В slib-g
O9053; O9081; O9082; O9073; O9083; O9074; O9084; O9028; O9029; O500; O501; O502; O503; O20000
В slib-m
O10000-O10002;   O10006; O10019; O10030; O10047;   O10050-O10091;    O10100-O10122;   O10129 O10130-O10133;   O10136; O10140; O10141;    O10150-O10181;    O10250-O10263;    O10270-O10281;  O10300-O10307

Создание:
Oxxx (xxx номер подпрограммы)
..
..
M99 (конец подпрограммы)
XYZABCIJKRHQDFS

Вызов: M98 (или G65)  Pххх   Lxx   XxxYxxZxxAxxBxxCxx IxxJxxKxxRxxHxxQxxDxxFxxSxx.
Pxxx - номер подпрограммы (без буквы O).
Lxx - количество повторов.
X-S параметры передаваемые в подпрограмму (в переменные). Их можно писать в любой последовательности.
X#1  Y#2  Z#3  A#4  B#5  C#6  I#7  J#8  K#9  R#10  H#12  Q#14  D#15  F#16  S#17  
Также, подпрограмму можно создавать в исполняемом файле УП, в slib-m.nc, в slib-g.nc
Если подпрограмма создаётся или изменяется в файлах прошивки - надо после сохранения изменений, перезагрузить контроллер.
