Tabela makro-zmiennych w NCPlayer — to interaktywny panel pokazujący aktualne wartości zmiennych
#100–#199 (lokalne/użytkownika) i #500–#531 (globalne/podstawowe), a także pomocniczych,
które są używane w wyrażeniach, warunkach i pętlach G-kodu. Tabela jest aktualizowana w czasie rzeczywistym podczas symulacji
i pomaga analizować logikę makroprogramów, debugować obliczenia oraz śledzić efekty uboczne.
Do czego służy
Debugowanie logiki: łatwo zobaczyć, jak zmieniają się zmienne podczas wykonywania #i = ..., IF, WHILE/DO/END, G65, M98/M99.
Analiza wyrażeń: kontrola wartości wejściowych/wyjściowych przy użyciu SIN/COS/ROUND/FIX/FUP/ABS/SQRT/....
Powtarzalność: szybki reset wartości zmiennych w celu ponownego uruchomienia z „czystego” stanu.
Co jest wyświetlane
Indeks zmiennej (np. #100, #512).
Aktualna wartość (liczba/NaN, jeśli jeszcze nie przypisano, lub wynik wyrażenia).
Źródło/ostatni zapis — linia programu, w której zmienna została zmieniona (jeśli dostępne powiązanie).
Format — wartość w „surowej” postaci i, w razie potrzeby, sformatowana (np. 30 → 30.0).
Jak to działa
Parser podczas preprocessingu oblicza i/lub odkłada w czasie obliczenia wyrażeń z udziałem zmiennych #.
Symulator przy wykonywaniu krok po kroku aktualizuje tabelę przy każdym przypisaniu #i = ... oraz przy wejściu/wyjściu z podprogramów/pętli.
Odroczone zależności (np. X[#100]) są ponownie przeliczane przy zmianie #100, co odzwierciedla tabela.
Zakresy i cechy
#100–#199 — zmienne lokalne programu/sesji symulacji.
#500–#531 — zmienne globalne (pseudo-stałe), zachowywane w ramach bieżącego uruchomienia symulatora.
Pomocnicze (#0, systemowe): pokazywane w miarę użycia, jeśli są zaangażowane w wyrażenia lub odczyty.
Inicjalizacja: niezinicjalizowana zmienna wyświetlana jest jako pusta/NaN do momentu pierwszego przypisania.
Interakcja
Pauza/krok: zatrzymaj symulację i przechodź liniami, obserwując zmiany wartości.
Szybki filtr: zostaw w tabeli tylko te indeksy, które wykorzystujesz (np. #100, #101, #500).
Reset wartości: użyj przycisku Reset (jeśli dostępny) do wyczyszczenia zmiennych lokalnych/globalnych przed kolejnym uruchomieniem.
Przykłady użycia
#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 (Parametry do podprogramu: #1, #2, ...)
W tych przykładach tabela pozwoli zobaczyć kroki zaokrąglania, wzrost liczników pętli i wartości
przekazywane do G65, co ułatwia weryfikację logiki.
Najlepsze praktyki
Inicjalizuj zmienne przed użyciem (#9 = 0) — dzięki temu tabela będzie przewidywalna.
Unikaj ukrytych zależności (ponowne przypisania w głęboko zagnieżdżonych podprogramach bez komentarza).
Komentuj kluczowe przypisania — tabela pokaże linię-źródło, co ułatwi orientację.
Tabela zmiennych przed symulacją:
Tabela zmiennych w trakcie symulacji:
Ograniczenia i uwagi
Niektóre zmienne systemowe mogą być read-only — ich wartości zależą od konfiguracji symulatora.
Głęboko zagnieżdżone wyrażenia są obliczane krok po kroku; przy niepoprawnej składni wartość może stać się NaN — sprawdź log preprocessingu.
Reset symulacji czyści lokalną tabelę wartości (globalne — zgodnie z ustawieniami bieżącej sesji).