Statyczne adresowanie zmiennych
Statyczne adresowanie zmiennych polega na definiowaniu zmiennych i przypisywaniu im adresów przez użytkownika.
1. Tworzymy nowy plik programu Fupla:
2. Wszystkie zmienne wykorzystywane przez program sterownika przechowane są w oknie Symbol Editor. Aby dodać zmienną należy wpisać ją w wolny wiersz tabeli:
![Dodawanie zmiennej](https://www.sabur.com.pl/wp-content/uploads/rys2_dodawanie_zmiennej.png)
Rys. 2 Dodawanie zmiennej w oknie Symbol Editor
3. Definiowanie nowej zmiennej wymaga od użytkownika podania jej nazwy, typu (np. rejestr, flaga), oraz adresu. Dodatkowo można utworzyć opis zmiennej w celu jej łatwiejszej identyfikacji. Analogicznie definiujemy dodatkowe zmienne w celu stworzenia prostego programu. Okno Symbol Editor powinno wyglądać następująco:
![Definiowanie zmiennych](https://www.sabur.com.pl/wp-content/uploads/rys3_definiowanie_zmiennych.png)
Rys. 3 Definiowanie zmiennych w oknie Symbol Editor
4. Zdefiniowane statycznie zmienne można teraz użyć w programie. W tym celu należy przycisnąć obszar po lewej stronie tabeli odpowiadający pożądanej zmiennej, a następnie przeciągnąć myszką do odpowiedniego konektora. Zmienna zostaje dodana do algorytmu programu:
5. Wprowadzając w analogiczny sposób pozostałe zmienne można utworzyć prosty program w Edytorze Fupla. Adresy zmiennych zostały wprowadzone w sposób statyczny przez użytkownika (numery adresów są widoczne w kolumnie Address / Value) w oknie Symbol Editor:
![Prosty program dla zdefiniowanych statycznie zmiennych](https://www.sabur.com.pl/wp-content/uploads/rys5_prosty_program_dla_zdefiniowanych_statycznie_zmiennych.png)
Rys. 5 Prosty program dla zdefiniowanych statycznie zmiennych
6. Po kompilacji i wgraniu programu do sterownika, adresy widoczne są w kolumnie Actual Address:
![Okno Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/rys6_okno_symbol_editor_po_wgraniu_programu.png)
Rys. 6 Okno Symbol Editor po wgraniu programu do sterownika
Dynamiczne adresowanie zmiennych
Dynamiczne adresowanie zmiennych jest znacznie wygodniejszym i szybkim sposobem projektowania niż adresowanie statyczne. Użytkownik nie musi bowiem wykonywać znacznej części operacji, które wymagane były do stworzenia zmiennej adresowanej statycznie. Dynamiczne adresowanie zmiennych nie wymaga od użytkownika konieczności ręcznego wpisywania adresu. Wszystkie zmienne są bowiem adresowane automatycznie podczas procesu kompilacji programu.
1. W celu zobrazowania działania dynamicznego adresowania zmiennych, tworzymy projekt analogiczny do odpowiednika z punktu 1. W tym celu otwieramy nowy plik Edytora Fupla, a następnie wpisujemy do odpowiednich konektorów nazwy zmiennych:
![Dynamiczne adresowanie zmiennych](https://www.sabur.com.pl/wp-content/uploads/rys7_dynamiczne_.png)
Rys. 7 Dynamiczne adresowanie zmiennych – użytkownik podaje tylko nazwę zmiennej, nie adresuje jej
2. Po wpisaniu nazw zmiennych do konektorów, pojawiają się one także w oknie Symbol Editor:
![Zmienne w oknie Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/rys8_zmienne_w_oknie_symbol_editor.png)
Rys. 8 Zmienne w oknie Symbol Editor
3. Po wykonaniu tych operacji można przystąpić do kompilacji programu oraz wgrania go do sterownika. W oknie Symbol Editor widoczne są aktualne adresy zmiennych:
![Okno Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/rys9_okno_symbol_editor_adresy_dynamiczne.png)
Rys. 9 Okno Symbol Editor – adresy dynamiczne w kolumnie Actual Address
Po kompilacji, program sam przypisał adresy do utworzonych przez użytkownika zmiennych, co jest widoczne na rys. 9. Utworzone przez użytkownika zmienne zostały zaadresowane w sposób następujący: F2021, F2022 oraz F2023.
Warto zauważyć, że adresy dynamiczne rozpoczynają się od numeru 2000 wzwyż. Ustawienia adresów dynamicznych są możliwe do modyfikacji w karcie Build Options drzewa projektu PG5:
![Build options](https://www.sabur.com.pl/wp-content/uploads/rys10_build_options.png)
Rys. 10 Ustawienia adresów dynamicznych w karcie Build Options
W oknie Build Options można zmieniać numery adresów dynamicznych. Domyślne ustawienia przewidują adresowanie flag i rejestrów od numeru 2000 do 8191.
Zobacz też: [xyz-ihs snippet=”obrazekfaq”] W jaki sposób PG5 przydziela i zwalnia adresy dla zmiennych dynamicznych?
Uwaga:
Należy pamiętać, że adresując zmienne statycznie nie możemy działać na obszarze zmiennych dynamicznych. Dla przykładu, zaadresowanie zmiennej adresem statycznym 2050 spowoduje błąd kompilacji programu:
![Błąd kompilacji](https://www.sabur.com.pl/wp-content/uploads/rys11_blad_kompilacji.png)
Rys. 11 Błąd kompilacji spowodowany niedozwolonym zaadresowaniem statycznym zmiennej