ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS
Autorzy Wydanie Data : : : Zespół SABUR Sp. z o.o. 3.00 Sierpień 2013 2013 SABUR Sp. z o. o. Wszelkie prawa zastrzeżone Bez pisemnej zgody firmy SABUR Sp. z o.o. niniejszy materiał ani w całości, ani w jakichkolwiek fragmentach nie może być powielany bądź rozpowszechniany za pomocą urządzeń elektronicznych, mechanicznych, kopiujących, nagrywających i innych. Firma SABUR Sp. z o.o. dołożyła wszelkich starań, aby zawarte w podręczniku informacje były kompletne i rzetelne. Nie bierze jednak żadnej odpowiedzialności za ich wykorzystanie, ani za związane z tym ewentualne naruszenie czyichkolwiek praw patentowych lub autorskich. 2 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS SPIS TREŚCI: 1. Wprowadzenie... 4 2. Zasoby zmiennych... 4 2.2.1. Flagi... 4 2.2.2. Rejestry... 5 2.2.3. Stałe... 5 2.2.4. Liczniki i Timery... 6 2.2.5. Łańcuchy znaków i bloki danych... 7 3 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
1. Wprowadzenie W poniższej instrukcji przedstawione zostanie zestawienie wszystkich typów zmiennych, które mogą być wykorzystane w programach sterowników Saia. Opisane zostaną również możliwości użycia oraz dostępny zakres adresowy zmiennych. Programy sterowników zawierają wiele instrukcji mających na celu odczyt i zapis parametrów. Zasoby zmiennych sterownika umożliwiają jego komunikację ze światem zewnętrznym. 2. Zasoby zmiennych 2.1. Wejścia / wyjścia cyfrowe i analogowe Wejścia i wyjścia cyfrowe reprezentują wartości binarne (1 bit). Wejścia obrazują stany przełączników, przycisków, sensorów, itp. Wyjścia cyfrowe mogą aktywować np. zawory, lampki, silniki, itp. Sygnały analogowe mogą przyjmować dowolne wartości z ciągłego przedziału. Zarządzanie wejściami i wyjściami przez sterownik możliwe jest, w zależności od modelu, poprzez: wejścia/wyjścia zabudowane na płycie głównej sterownika, moduły wejść/wyjść umieszczane w slotach sterownika. Adresy wejść/wyjść są stałe i zostały zdefiniowane przez producenta. Dokumentacja każdego ze sterowników zawiera szczegółowy ich opis. Dla przykładu: Moduły adresowane są od 0. Dla każdego z modułów sterownik rezerwuje 16 kolejnych adresów. Początkowy adres modułu jest stały i zależy od numeru slotu w którym został umieszczony (numer slotu*16). 2.2. Zasoby wewnętrzne 2.2.1. Flagi Flaga przechowuje pojedynczy bit danych (0 lub 1). Flagi są domyślnie ustawione na wartość non-volatile (nieulotne). Oznacza to, że jeżeli przy wyłączeniu sterownika wartość flagi będzie wynosić 1, to po jego ponownym włączeniu ten stan nie ulegnie zmianie (warunkiem jest sprawność baterii sterownika). Wszystkie flagi z ustawioną wartością volatile (ulotne) przyjmują wartość 0 gdy sterownik jest wyłączony. Liczba nieulotnych flag jest zdefiniowana w karcie Build Options drzewa projektu PG5. Można tam definiować liczbę dostępnych flag, a także określić parametry adresowania dynamicznego: Rys. 1 Ustawienia ulotnych i nieulotnych flag w karcie Build Options 4 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
Proste użycie flagi przedstawiono na rys. 4. Flaga F 20 osiąga wartość 1 gdy wystąpi stan wysoki na wejściu I1 oraz I2: Rys. 2 Flaga w programie sterownika 2.2.2. Rejestry Rejestry mogą przechowywać 32-bitowe zmienne ze znakiem lub liczby zmiennoprzecinkowe. Są one często używane do operacji matematycznych, np. do zarządzania wartościami analogowymi procesu. Wszystkie rejestry są typu non-volatie (nieulotne), co oznacza, że ich wartości są zachowywane przy wystąpieniu zaniku napięcia. Edytor Fupla rozróżnia typy zmiennych przechowywanych przez rejestry za poprzez różne kolory połączeń: linie żółte odpowiadają wartościom zmiennoprzecinkowym (Floating point), natomiast linie zielone liczbom całkowitym (Integer). Zmienna typu całkowitego nie może być bezpośrednio połączona z rejestrem przechowującym wartość zmiennoprzecinkową jedna z wartości musi być najpierw przekonwertowana. Przykład użycia: Poniższy przykład obrazuje dodawanie liczby do wartości w rejestrze R5. Wynik dodawania przechowywany jest w rejestrze R6: Rys. 3 Prosty przykład obrazujący działanie rejestrów 2.2.3. Stałe Stałe są wartościami, które mogą być wprowadzane bezpośrednio lub też przechowywane w pamięci. Mogą one przyjmować wartości całkowite lub zmiennoprzecinkowe. Liczniki i timery przechowują jedynie wartości całkowite bez znaku, np. 0 2, 256, 485, itp. Przykład użycia: W poniższym przykładzie do rejestru R10 przypisywana jest stała wartość 10, która następnie dzielona jest przez wartość zmiennoprzecinkową (0.25). Z racji tego, że rejestr R10 przechowuje wartość całkowitą, przed wykonaniem działania musi być on przekonwertowany na wartość zmiennoprzecinkową. Następuje przypisanie wartości działania do rejestru R11, który z kolei konwertowany jest na wartość typu całkowitego (rejestr R12): 5 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
Rys. 4 Program przedstawiający działanie stałych, rejestrów i zastosowania konwersji z wartości całkowitych na wartości zmiennoprzecinkowe W oknie Symbol Editor istnieje możliwość zdefiniowania dwóch typów stałych: K oraz Const: Rys. 5 Stałe: K oraz Const Różnice pomiędzy typami wynikają z zakresów ich stosowania. Stałe typu K mogą przechowywać wartości max. 14-bitowe bez znaku. Symbole typu const stosowane są do przechowywania wartości 32-bitowych ze znakiem. 2.2.4. Liczniki i Timery Liczniki i timery mogą przechowywać wartości od 0 do 2147483648 (31 bitów). Posiadają one ten sam zakres adresowy: od 0 do 1599. Liczba komponentów definiowana jest w karcie Build Options (rys. 8). Stała czasowa timerów jest domyślnie zdefiniowana jako 100ms, co oznacza, że wartość przechowywana w timerze jest zmniejszana o 1 co każde 100ms. Liczniki i timery mogą przechowywać jedynie całkowite wartości dodatnie. Zmienne w timerach mogą być jedynie zmniejszane, natomiast w licznikach mogą być one zarówno zmniejszane jak i zwiększane. Uwaga: Im więcej zadeklarowanych timerów, tym większe obciążenie pamięci sterownika. Taka sytuacja występuje także przy zmniejszaniu stałej czasowej komponentów. 6 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
Rys. 6 Modyfikacja parametrów liczników i timerów w karcie Build Options Przykład użycia: Wartość przechowywana w liczniku zostaje zwiększona za każdym razem, gdy wejście I3 osiągnie stan wysoki oraz zostaje zmniejszona, gdy wejście I4 przyjmie wartość 1. Liczenie wywoływane jest przez zbocze narastające wejść. Zerowanie licznika realizowane jest przez zbocze narastające na wejściu I5. Wartość inicjalizacyjną ustawiono jako 3: Rys. 7 Prosty przypadek użycia licznika 2.2.5. Łańcuchy znaków i bloki danych Łańcuchy znaków i bloki danych (Data Blocks DB tablice wartości 32-bitowych) są zmiennymi nieulotnymi. Teksty są używane np. jako powiadomienia na wyświetlaczach, linie poleceń, itp. Bloki danych znajdują zastosowanie w zapisie danych. Łańcuchy tekstowe i bloki danych posiadają ten sam zakres adresowy. Jeżeli zdefiniowano łańcuch Text1, to niemożliwe jest stworzenie bloku DB1. Podstawowa pamięć programu przewiduje deklarowanie max. 4000 łańcuchów. Maksymalna liczba łańcuchów i bloków danych zależy od sterownika: Typ sterownika PCD1 PCD2 PCD2.M480, PCD3 Max. liczba łańcuchów / bloków danych 0.4999 0.5999 0.8191 Tabela 2: Maksymalne wartości liczby łańcuchów i bloków danych dla poszczególnych sterowników Przykład: Definiowanie zmiennej tekstowej o oknie Symbol Editor: 7 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50
Rys. 8 Definiowanie zmiennej tekstowej w oknie Symbol Editor W oknie Symbol Editor istnieje także możliwość zdefiniowania zmiennych typu TEXT RAM i DB RAM. Różnią się one od wcześniej omówionych symboli typu TEXT i DB możliwością ich nadpisywania, a także zakresem adresowym. Szczegóły dotyczące zakresów adresowania widoczne są w karcie Build Options drzewa projektu PG5. Parametr First writeable Text/DB numer określa początkowy numer zmiennej typu Text/DB, która może być nadpisywana (domyślne ustawienie to 4000). Oznacza to, że symbole z adresami poniżej tego numeru będą zmiennymi tylko do odczytu. Jeżeli chcemy, by wszystkie zmiennej Text/DB mogły być nadpisywane, należy ustawić wartość parametru na 0. Rys. 9 Zakresy zmienny typu TEXT RAM i DB RAM 8 Sabur Sp. z o.o. ul. Puławska 303, 02-785 Warszawa, tel. 22 549 43 53, fax 22 549 43 50