О сервисе NCPlayer:
Меню Файл
Меню Правка
Меню Вид
Меню Форматирование
Меню Инструменты
Меню Конфигурация станка
Совместная работа

Работа с таблицей макропеременных


Таблица макропеременных в NCPlayer — это интерактивная панель, показывающая текущие значения переменных #100–#199 (локальные/пользовательские) и #500–#531 (общие/постоянные), а также служебных, которые используются в выражениях, условиях и циклах G-кода. Таблица обновляется в реальном времени во время симуляции и помогает анализировать логику макропрограмм, отлаживать вычисления и отслеживать побочные эффекты.

Для чего нужна

  • Отладка логики: легко увидеть, как меняются переменные при выполнении #i = ..., IF, WHILE/DO/END, G65, M98/M99.
  • Анализ выражений: контроль входных/выходных значений при использовании SIN/COS/ROUND/FIX/FUP/ABS/SQRT/....
  • Повторяемость: быстро сбрасывать (reset) значения переменных для повторных прогонов с «чистого» состояния.

Что отображается

  • Индекс переменной (например, #100, #512).
  • Текущее значение (число/NaN, если ещё не присваивалось, или результат выражения).
  • Источник/последняя запись — строка УП, где переменная была изменена (если доступна привязка).
  • Формат — значение в «сыром» виде и, при необходимости, отформатированное (например, 3030.0).

Как это работает

  1. Парсер во время препроцессинга вычисляет и/или откладывает вычисление выражений с участием #-переменных.
  2. Симулятор при пошаговом исполнении обновляет таблицу при каждом присваивании #i = ... и при входе/выходе из подпрограмм/циклов.
  3. Отложенные зависимости (например, X[#100]) пересчитываются по мере изменения #100, что отражается в таблице.

Области и особенности

  • #100–#199 — локальные переменные программы/сеанса симуляции.
  • #500–#531 — общие (псевдо-постоянные) переменные, сохраняются в рамках текущего запуска симулятора.
  • Служебные (#0, системные): показываются по мере использования, если задействованы в выражениях или чтении.
  • Инициализация: неинициализированная переменная отображается как пустая/NaN до первого присваивания.

Взаимодействие

  • Пауза/шаг: поставьте симуляцию на паузу и шагайте по строкам, наблюдая, как меняются значения.
  • Быстрый фильтр: оставьте в табличке только те индексы, которые используете (например, #100, #101, #500).
  • Сброс значений: используйте кнопку Reset (если доступна) для очистки локальных/общих переменных перед повторным прогоном.

Примеры использования

#100 = ROUND[#101 + 10]
IF [#100 GT 50] THEN GOTO 120
WHILE [#9 LT #20] DO1
  #9 = #9 + 1
END1
G65 P1000 A1 B#100  (Параметры в подпрограмму: #1, #2, ...)

В этих примерах таблица позволит видеть шаги округления, рост счётчиков циклов и значения, передаваемые в G65, что облегчает верификацию логики.

Лучшие практики

  • Инициализируйте переменные перед использованием (#9 = 0) — так таблица будет предсказуемой.
  • Избегайте скрытых зависимостей (переприсваивание в глубоко вложенных подпрограммах без комментария).
  • Комментируйте ключевые присваивания — таблица покажет строку-источник, и вам будет проще ориентироваться.
Таблица переменных перед симуляцией: NCPlayer Таблица переменных в процессе симуляции: NCPlayer

Ограничения и примечания

  • Некоторые системные переменные могут быть read-only — их значения зависят от конфигурации симулятора.
  • Глубоко вложенные выражения вычисляются пошагово; при некорректном синтаксисе значение может стать NaN — обратитесь к логу препроцессинга.
  • Сброс симуляции очищает локальную таблицу значений (общие — согласно настройкам текущей сессии).
CNCPassport © MEBLEOS © 2026 · Ver 1.0 · Terms & Conditions | Privacy Policy | Cookie Policy | Refund Policy Legal information | Privacy Policy