W oprogramowaniu PG5 wykorzystuje się 3 zasięgi zmiennych: lokalne (local), publiczne (public) oraz zewnętrzne (external).
Zasięgi zmiennych można modyfikować w oknie Symbol Editor edytora Fupla w kolumnie Scope:
![Modyfikowanie zasięgu zmiennych w oknie Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/faq1_modyfikowanie_zasiegu_zmiennych_w_oknie_Symbol_Editor.png)
Modyfikowanie zasięgu zmiennych w oknie Symbol Editor
Aby zrozumieć zasięg różnych typów zmiennych warto posłużyć się przykładem:
![Drzewo projektu PG5 – zasięg poszczególnych komponentów](https://www.sabur.com.pl/wp-content/uploads/faq2_drzewo_projektu_PG5_zasieg_poszczegolnych_komponentow.png)
Drzewo projektu PG5 – zasięg poszczególnych komponentów
A) Zmienne lokalne (local):
Typ lokalny (local) pozwala na użycie danej zmiennej tylko w obrębie pliku, w którym została ona utworzona. Jeżeli np. zmienna została utworzona w pliku Plik_1.fup, to nie może ona zostać użyta w pliku Plik_2.fup.
B) Zmienne publiczne (public):
Typ publiczny (public) pozwala na użycie danej zmiennej we wszystkich plikach kojarzonych z danym urządzeniem. Oznacza to, że np. zmienna utworzona w pliku Plik_1.fup może być użyta zarówno w pliku Plik_1.fup jak i w Plik_2.fup.
Przykład:
W pliku Plik_1.fup zdefiniowano zmienną zmienna3 i oznaczono jej typ jako Public. Po otwarciu pliku Plik_2.fup w oknie Symbol Editor klikamy zakładkę All Publics, gdzie widoczna jest utworzona zmienna:
![Dostęp do zmiennej globalnej z poziomu okna Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/faq3_dostep_do_zmiennej_globalnej_z_poziomu_okna_Symbol_Editor.png)
Dostęp do zmiennej globalnej z poziomu okna Symbol Editor
C) Zmienne zewnętrzne (external):
Typ zewnętrzny (external) stanowi referencję do zmiennej typu publicznego (public), zdefiniowanej w innym pliku programu. Jeżeli więc chcemy skorzystać ze zmiennej zmienna3 w pliku Plik_2.fup (rys. 3), przeciągamy ją do konektora na obszar roboczy edytora. W oknie Symbol Editor pliku Plik_2.fup w zakładce Plik_2.fup automatycznie tworzony jest symbol zmienna3 typu zewnętrznego (external), który stanowi referencję do zmiennej globalnej zdefiniowanej w pliku plik_1.fup:
![Definicja zmiennej zewnętrznej (external) w oknie Symbol Editor](https://www.sabur.com.pl/wp-content/uploads/faq4_definicja_zmiennej_wewnetrznej_external_w_oknie_Symbol_Editor.png)
Definicja zmiennej zewnętrznej (external) w oknie Symbol Editor
Uwaga: W projekcie nie może dojść do kolizji dwóch zmiennych o tej samej nazwie i typie i “nakładającym się” zasięgu. Nie może zatem dojść do sytuacji, gdy zadeklarowane są dwie zmienne o tej samej nazwie i zasięgu Public. W takim przypadku należy jedną z nich zadeklarować jako Public, a druga powinna być zmienną External.