16.06.2015 Views

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

SHOW MORE
SHOW LESS

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 ‐

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!