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 />

słowem IF jest PRAWDĄ, to wykonywane są słowa, z których składa się , a jeśli FAŁSZEM, to operator nie<br />

wykonuje żadnych działań. W obu przypadkach warunek dla słowa IF jest obliczany przez poprzedzające go słowa.<br />

Podamy przykład zdefiniowanego słowa warunek ‐ rozpatrującego warunek matematyczny lub logiczny przed nim i<br />

drukujące słowo prawda lub fałsz, w zależności od prawdziwości postawionego warunku:<br />

> : warunek IF .” prawda „ ELSE .” falsz „ THEN ;<br />

(OK)<br />

> 1 warunek<br />

prawda (OK)<br />

> 0 warunek<br />

falsz (OK)<br />

> ‐123 warunek<br />

prawda (OK)<br />

> 1 2 = warunek<br />

falsz (OK)<br />

Rozpatrzymy przykład budowy wielostopniowego wyboru na podstawie warunkowego operatora:<br />

: temp<br />

DUР 18 < IF ." Chlodno " ELSE<br />

DUP 21 < IF ." Umiarkowanie " ELSE<br />

DUP 25 < IF ." Cieplo " ELSE<br />

DUP 30 < IF ." Goraco " ELSE<br />

." Upalnie "<br />

THEN THEN THEN THEN DROP ;<br />

(OK)<br />

> 22 temp<br />

Cieplo (OK)<br />

Zdefiniowaliśmy słowo temp, które ze szczytu stosu zdejmuję wartość i porównuję ją kolejno z zadanymi wartościami. W<br />

przypadku, kiedy wynikiem porównania jest FAŁSZ, porównanie odbywa się na kolejnym poziomie, aż do momentu<br />

otrzymania PRAWDY. Wtedy kolejne porównania nie odbywają się, a wiersz podany między słowami IF i ELSE zostaje<br />

wydrukowany.<br />

W tym przykładzie pokazano również możliwość jednego, tego samego wykonania pola dla wszystkich kolejnych<br />

operatorów. Przy takim złożeniu słów operatora należy pamiętać, aby liczba słów THEN była taka sama jak IF i ELSE.<br />

Operator warunkowy można również zastosowanie dla porównań wartości ze stosu matematycznego oraz dla wartości<br />

logicznych. Można nawet porównywać różne typy danych w granicach jednego takiego wyrażenia.<br />

4.6 TIMERY I WIELOZADANIOWOŚĆ<br />

Forth‐system funkcjonuje w środowisku wielozadaniowym, więc język <strong>ForthLogic</strong> pozwala opisywać procesy wykonywane<br />

równolegle. Ta właściwość ściśle związana jest ze słowem timer. Timer ‐ to <strong>prog</strong>ramowy obiekt, który pozwala realizować<br />

interwał czasowy po zakończeniu, którego wykonywane jest podane słowo.<br />

Liczbę timerów dla danej wersji sterownika określa parametr T_MAX. Patrz: rozdz. 8 Tabela zasobów <strong>prog</strong>ramowych.<br />

Do konfiguracji timerów służy słowo TIMER!. Słowo to ze stosu matematycznego zdejmuje górny element jako czasową<br />

zwłokę w sekundach, a górny element ze stosu danych jako numer timera. Po słowie TIMER! podaje się słowo, które jest<br />

wykonane po odliczeniu ustawionego interwału czasowego przez ten timer.<br />

Forth‐system pozwala realizować interwały czasowe w zakresie 0,01sek ÷ 21474836,47sek (248 dni) ze skokiem, co<br />

0,01sek. Szczególny przypadek interwału czasowego, to 0 sek (parametr 0.0). Zwłoka 0 sec oznacza bezzwłoczne<br />

wykonanie słowa danego timera.<br />

Słowo TIMER! jest słowem wywoławczym. Bezpośrednio po może znaleźć się tylko inne słowo jako wymagany parametr<br />

wykonawczy, natomiast nie mogą zostać podane jakiekolwiek wartości wprowadzane na stos lub do bufora wejściowego.<br />

‐ 23 ‐

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

Saved successfully!

Ooh no, something went wrong!