Исходный код вики Создание фонового макроса

Версия 2.1 от abolgov на 2019/07/31 17:06

Последние авторы
1 (% class="auto-cursor-target" %)
2 \\
3
4 {{tip title="Внимание!"}}
5 Перед началом работы убедитесь в наличии активной опции «Фоновые операции».
6 {{/tip}}
7
8 Для многих задач по управлению ЧПУ системой требуется возможность фонового выполнения макросов, в которых отслеживаются определённые параметры работы системы и выполняются необходимые действия (например, управление выходами).
9
10 Код макроса может быть написан в любом текстовом редакторе (стандартный Блокнот, Notepad++ и другие). Список функций в API для разработки фоновых макросов приведён в разделе "Функции для разработки фоновых макросов". Обратите внимание, что набор доступных функций отличается в API фоновых макросов и классических макросов.
11
12 Готовый код необходимо сохранить в формате *.bm с произвольным именем и поместить в папку **%UserProfile%\Local Settings\Application Data\Purelogic\PUMOTIX\Server\Macros\Background**.
13
14 При запуске сервер Pumotix загружает все файлы из этого каталога и начинает выполнение каждого фонового макроса в отдельном потоке. При этом внутри макроса вызывается функция - обработчик с интервалом 100 мс (интервал между вызовами обработчика может изменяться в зависимости от определённых условий, для точного замера прошедшего времени используйте функцию GetSystemTickCount).
15
16 \\
17
18 {{code title="Пример фонового макроса"}}
19 function handle()
20 local x = AxisGetMachinePos(Axis.X)
21
22 local new_state_0 = x < 0
23 local new_state_1 = x >= 0
24
25 if (PinGetState(Outputs.UserOutput_0) ~= new_state_0) then
26 PinSetState(Outputs.UserOutput_0, new_state_0)
27 end
28
29 if (PinGetState(Outputs.UserOutput_1) ~= new_state_1) then
30 PinSetState(Outputs.UserOutput_1, new_state_1)
31 end
32 end
33 {{/code}}
34
35 (% class="auto-cursor-target" %)
36 \\