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.

Sterowniki <strong>prog</strong>ramowalne MAX Logic<br />

> ." +48123456789 "<br />

+48123456789 (OK)<br />

> ." Witaj w systemie <strong>ForthLogic</strong> "<br />

Witaj w systemie <strong>ForthLogic</strong> (OK)<br />

Wiersz może być również zdefiniowany jako słowo i wywoływany w każdym momencie przez to słowo. Definiowanie<br />

słowa wywołującego wiersz zaczyna się słowem „:” (dwukropek) i kończy się słowem „;” (średnik) [standardowa<br />

procedura definiowania nowych słów]. Po dwukropku umieszcza się nazwę nowego słowa definiującego wiersz, a<br />

następnie pomiędzy słowami .” i ” umieszcza się tekst wiersza [standardowa procedura tworzenia wiersza]. Wiersz<br />

zdefiniowany jako słowo zachowuje się jak stała (nie podlega modyfikacji) i jest przechowywany w pamięci nieulotnej.<br />

> : Hi! ." Hello world! " ;<br />

(OK)<br />

> Hi!<br />

> Hello world! (OK)<br />

W języku <strong>ForthLogic</strong> istnieje możliwość zdefiniowania tzw. zmiennych wierszowych, służących do przechowywania w<br />

pamięci operacyjnej wierszy tekstu o długości do 15 znaków. Do pracy ze zmiennymi wierszowymi służą słowa STRING! i<br />

STRING?. Liczbę zmiennych wierszowych dla danej wersji sterownika określa parametr S_MAX. Patrz: rozdz. 8 Tabela<br />

zasobów <strong>prog</strong>ramowych.<br />

‐ STRING! ‐ definiuje numer i tekst zmiennej zdejmując ze stosu danych górne znaczenia jako numer zmiennej i sczytując z<br />

bufora wyjściowego ciąg znaków jako wiersz tekstu, który pozostaje w pamięci tej zmiennej. Znaki wprowadzone po spacji<br />

nie będą drukowane po wywołaniu tej zmiennej.<br />

‐ STRING? ‐ zdejmuje ze stosu danych górny element jako numer zmiennej, a na stos danych kładzie kopię wartości tej<br />

zmiennej (w tym przypadku jest to wiersz tekstu).<br />

> ." Tekst 15 znakow " 1 STRING!<br />

Tekst 15 znakow (OK)<br />

> 1 STRING?<br />

Tekst 15 znakow (OK)<br />

Tekst powyżej 15 znaków jest automatycznie ucinany.<br />

W poprzednich przykładach, przy drukowaniu znaczeń ze stosu i z bufora wyjściowego forth‐system automatycznie<br />

drukował jedną spację pomiędzy elementami. Automatyczne drukowanie spacji jest domyślnie dla forth‐systemu. Jednak<br />

można wyłączać i ponownie załączać automatyczny druk jednej spacji. Służą do tego słowa:<br />

NOAUTOSPACE ‐ wyłączenie automatycznego druku jednej spacji pomiędzy zdjętymi elementami stosu;<br />

AUTOSPACE ‐ załączenie automatycznego druku spacji pomiędzy zdjętymi elementami stosu.<br />

Aby powiększać liczbę spacji pomiędzy zdjętymi elementami stosu można zastosować słowo SPACE (spacja). Dane słowo<br />

drukuje w wyjściowym buforze i na terminalu dodatkową spację.<br />

> 5 23.5<br />

> ." Liczba " . SPACE SPACE ." TEMP.: " NOAUTOSPACE ." stC " AUTOSPACE<br />

Liczba 5 TEMP.: 23.5stC (OK)<br />

Do przeniesienia tekst do nowej linii służy słowo NEWLINE (nowa linia). Słowo to przenosi tekst w wyjściowym buforze i<br />

na terminalu do nowej linii. Praktyczne zastosowanie słowo to ma przy formatowaniu tekstu projektowanego na<br />

wyświetlaczu sterownika i dla formatowania tekstów SMS oraz formatu publikacji rejestrowanych danych.<br />

> ." linia pierwsza " NEWLINE ." linia druga "<br />

linia pierwsza<br />

linia druga (OK)<br />

W przypadku kiedy w samym formatowanym wierszu tekstu zachodzi potrzeba zastosowania cudzysłowów ( „ ” )<br />

oddzielonych od tekstu przynajmniej jedna spacją cudzysłowy możemy wprowadzić za pomoca słowa QUOTE.<br />

‐ 20 ‐

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

Saved successfully!

Ooh no, something went wrong!