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