User Tools

Site Tools


ru:mycnc:macro_language

Язык программирования макропроцедур

Язык программирования состоит из стандартных G-кодов и конструкций, которые можно использовать. Так же допускается вызов ПЛК процедур и обращение к глобальным переменным ЧПУ.

 Макропроцыдуры допускают использование переменных. Символ #, перед адресом – означает использование переменной в коде команды.Возможна работа с адресным пространством 0…16000, для переменных пользователя отведено пространство 1…999. Всё что выше 1000, относится к системным переменным, обращение к ним может изменить работу системы, а также система сама их может менять.  Для того, чтобы присвоить переменной значение используется знак равенства ( = )  Разрешенные арифметические операторы языка:

  • + - сложение
  • - - вычитание
  • * - умножение
  • / - деление
  • REM - остаток r при делении (a / b = c, остаток = r)
  • MOD - частное c (a / b = c, остаток = r)

Операторы сравнения:

  • GT – больше чем
  • GE – больше или равно чем
  • LT – меньше чем
  • LE – меньше или равно
  • [] – квадратные скобки, несут смысл круглых скобок (изменение приоретета операций)
  • () – в круглых скобках, комментарии игнорируемые интерпретатором.
  • if [условие] GOTO xxx – если [условие] истинно, то переход на строку, обозначенную ххх
  • if [условие] xxx- если [условие] истинно, то переход на строку, обозначенную ххх
  • GOTO xxx – безусловный переход на строку, обозначенную ххх

Примеры создания макросов

(M131 Homing X (поиск исходного положения оси Х))

G10 L80 P5521 Q1 (назначить переменной #5521 значение «1»- игнорирование концевых выключателей)
G10 L80 P5525 Q1 (назначить переменной #5525 значение «1»- игнорирование программных ограничителей)
M88 L0 P5(процедура ПЛК, которая ожидает срабатывания входа «5» (задан параметром Р5))
G91 G0 X -1000.0000 F 1000.00 (задает движение (в приращениях) по оси Х на -1000 единиц, со скоростью 1000, пока не сработает М88)
G04 P0.1 (пауза 0,1 сек.)
M89 L1 P5(процедура ПЛК, которая ожидает срабатывания входа «5» (задан параметром Р5) и быстрый останов)
G91 G0 X 1000.0000 F 60.00 (движение обратно на +1000 единиц, со скоростью 60, пока не сработает М89) 
G04 P0.1 (пауза 0,1 сек.)
G91 G0 X 5.0000 F 500.00 (движение на +5 единиц, со скоростью 500)
G90 G10 L70 P0 X#5451 (установить координаты оси Х= содержимым регистра #5451)
G90 G10 L70 P#5220 X#5451 
G10 L80 P5521 Q0 (выключить игнорирование концевых выключателей)
G10 L80 P5525 Q0 (выключить игнорирование программных ограничителей)
G10 L80 P7391 Q0 (сбросить флаг исходного положения #7391=0 )

  FIXME Эта страница пока что не переведена полностью. Пожалуйста, помогите завершить перевод.
(Сотрите это сообщение по окончании перевода.)

Macros list

“myCNC” has a built-in “Macros list” editor for creating and editing macros. The main functions of the editor are presented below.

Basic window

Main functions

macro_1.png

Function "add macros"

To create a macro, you need to click the “+” icon and in the field that appears, enter the corresponding name of the macro. After confirmation of creation, using the “V” icon, the macro will appear in the list of saved macros. Below is an example of creating a macro named “M222”.

After creating a macro, you can start editing it. To do this, simply select the desired macro and start editing it in the corresponding macro listing window. Below is edit of creating a macro named “M222”. After creating and editing a macro, it must be saved using the “save changes in macro” button

Delete macros

To delete a macro that is not needed, you must select the macro to be deleted and use the function “delete macro”. In the dialog box that appears, you must either confirm or refute the deletion of the macro.

Examples of macros

M120 - Surface measure

M120.plc
main()
(Surface measure)
(Tool is placed somewhere above the surface sensor)
(Surface Sensor Width is placed into Parameter #5490)
 
G28.2 Z0.		(save current z position into Register1.Z (value with Z doesn't matter))
G53 G38.2 Z-10.		(move down to z=-10., stop while sensor is pressed)
G10 L70 P1 Z#5490	(set current work position as Z=0 (with offset depends on tool sensor width))
G28.5 Z0.		(return back to saved Z position in Register1.Z (value with Z doesn't matter))

M140 - Homing for X coordinat

M140.plc
main()
G10 L80 P5521 Q1
G10 L80 P5525 Q1
M88 L1 P19(Soft stop when sensor triggered)
G91 G0 X 15000.0000 F  8000.00
G04 P0.1
M88 L0 P19(Quick stop when sensor triggered)
G91 G0 X -15000.0000 F  8000.00
G04 P0.1
G91 G0 X    20.0000 F   500.00
G90 G10L70 P0 X #5451
G10 L80 P5521 Q0
G10 L80 P5525 Q0
G10 L80 P7391 Q0 (Homing Flag)

Repeat Test

G10 L80 P5521 Q1 (Disable Software Limits)
G10 L80 P5525 Q1 (Disable Hardware Limits)
 
#10=1 (Initialize register value)
 
N20
 
M88 L1 P14(Soft stop when sensor triggered)
G91 G0 Y   10.6 F   600.00 (Move to sensor)
G04 P0.2 (Pause)
 
M220 (Check coordinate, print it)
 
G90 G0 Y   -10.0000 F   600.00
 
#10=#10+1 (Increment register)
 
if [ #10 LT 100 ] 20 (Repeat 100 times)
ru/mycnc/macro_language.txt · Last modified: 2020/02/18 14:36 by ivan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki