< Wróć do bazy wiedzy

Dlaczego deklarowanie symboli jako globalnych nie zawsze jest dobrą praktyką?

Jeśli w PG5 1.3 w edytorze symboli zaznaczymy opcję ”Add symbols to globar table”, to pojawi się komunikat mówiący, że jest to niezbyt dobra praktyka. Poniżej znajdują się wyjaśnienia niektórych powodów:

  • podczas eksportu stron Fupli, lub podczas dodawania plików (pliki Fupla, IL lub Graftec) z innego projektu lub CPU, zmienne globalne użyte w tych plikach nie zostaną zaimplementowane do CPU,
  • program staje się mniej modułowy,
  • symbole globalne są dostępne we wszystkich modułach. W wielu aplikacjach nie ma to sensu. Z drugiej strony może to być niebezpieczne (np. w przypadku dodania modułu, który zawiera zdefiniowane symbole)
  • Drag&Drop w strukturze symboli nie działa dla symboli globalnych,
  • po zmianie nawet jednego symbolu globalnego, wszystkie moduły muszą być ponownie skompilowane, a to zabiera znacznie więcej czasu.

Jest jednak przypadek, gdy definiowanie symboli globalnych ma sens. Ma to miejsce, gdy symbol musi być dostępny w kilku modułach (np. Fupla i HMI Editor). Jeśli nie ma takiej potrzeby, to zaleca się nie definiować symboli jako globalnych (lub publicznych, co znaczy to samo)!