ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Instrukcja <strong>prog</strong>ramowania w języku <strong>ForthLogic</strong> wersja <strong>P.1.2</strong><br />
Przykład:<br />
> 4.123 1 FVAR! ‐2.37889 16 FVAR!<br />
(OK)<br />
> 1 FVAR? F.<br />
4.123000 (OK)<br />
> 16 FVAR? FE.<br />
‐0.237889E+01 (OK)<br />
><br />
Często przy tworzeniu <strong>prog</strong>ramów dla zadań sterowania trzeba operować pojedynczymi bitami, tzw. flagami. Flaga to<br />
znacznik jednobitowy przyjmujący wartości logiczne 1 [PRAWDA] lub 0 [FAŁSZ], potrzebne do budowania logicznych zadań<br />
na potrzeby wewnętrzne <strong>prog</strong>ramu. Do pracy ze zmiennymi globalnymi jednobitowymi służą słowa FLAG! i FLAG?. Liczbę<br />
zmiennych bitowych dla danej wersji sterownika określa parametr B_MAX. Patrz: rozdz. 8 Tabela zasobów<br />
<strong>prog</strong>ramowych.<br />
‐ FLAG! ‐ zdejmuje ze stosu danych dwa górne znaczenia – pierwsze jako numer zmiennej, a drugie jako jej wartość i jest<br />
interpretowana jako wartość logiczna PRAWDA (1) lub FAŁSZ (0), przy czym PRAWDA jest definiowana przez każdą<br />
wartość różną od zera (również ze znakiem minus „‐”), a FAŁSZ przez jest definiowany tylko przez zero.<br />
‐ FLAG? ‐ zdejmuje ze stosu danych górny element jako numer zmiennej, a na stos danych kładzie kopię wartości tej<br />
zmiennej i jest interpretowana jako wartość logiczna PRAWDA (1) lub FAŁSZ(0).<br />
Przykład:<br />
> 1 1 FLAG! 0 16 FLAG! 124 100 FLAG!<br />
(OK)<br />
> 1 FLAG? . 16 FLAG? . 100 FLAG? .<br />
‐1 0 ‐1 (OK)<br />
><br />
Zmienna 16 kładzie na stos wartość logiczną FAŁSZ (na terminalu drukuj 0), ponieważ jej wartość została zdefiniowana<br />
jako 0. Wartość flagi 100 była zdefiniowana jako różna od zera i dlatego kładzie na stos wartości logiczne PRAWDA.<br />
Wartość PRAWDA na terminalu drukowana jest jako ‐1. Jest to spowodowane zapisem tej wartości jako liczby 32‐bitowej<br />
w systemie binarnym, w którym odbywają się wszystkie operacje obliczeniowe każdego procesora. Dla wartości logicznej<br />
PRAWDA jest to ciąg 32 „jedynek” (1), a bit o najwyższym znaczeniu wyznacza znak liczby (+/‐). Jeżeli jest to 1 to liczba jest<br />
o wartości ujemnej. Dlatego wartość PRAWDA jest zwracana i drukowana na terminalu (gdzie posługujemy się systemem<br />
dziesiętnym) liczba ‐1. Wartości logiczna FAŁSZ jako liczba 32‐bitowa w systemie binarnym to ciąg 32 „zer” (0), dlatego<br />
zwracana jest i drukowana na terminalu jako 0.<br />
Do wyzerowania zmiennych, oczyszczenia stosów danych i matematycznego oraz resetowania stanów wyjść (do wartości<br />
logicznej 0) służy słowo CLEARSYS.<br />
4.4.3 Zmienne wierszowe i formatowanie tekstu<br />
Wiersze pomagają użytkownikowi przy <strong>prog</strong>ramowaniu specyficznych poleceń, takich jak wykonanie i odbiór<br />
telefonicznych połączeń głosowych, odtworzenie plików dźwiękowych, drukowanie tekstów na wyświetlaczu sterownika,<br />
itp. Polecenia te wykorzystują sformatowaną treść buforu wyjściowego. Przy pracy w trybie terminalowym fort‐systemu,<br />
wprowadzenie wiersza w bufor wyjściowy skutkuje powieleniem go i wydrukowaniem w oknie terminal.<br />
Rozmiar bufora (liczbę znaków) dla danej wersji sterownika określa parametr OUTBUF_MAX. Patrz: rozdz. 8 Tabela<br />
zasobów <strong>prog</strong>ramowych.<br />
Dla tworzenia wiersza tekstu, który będzie drukowany w wyjściowym buforze służy słowo ." (kropka‐cudzysłów), po<br />
którym wprowadza się tekst składający się z dowolnych znaków, również spacji. Tekst trzeba rozpocząć od spacji. Na<br />
końcu tekstu trzeba wprowadzić spację i zamknąć słowem " (cudzysłowy).<br />
‐ 19 ‐