Witamy

>> Pomoc dla użytkowników systemu asix - wersji 6

www.asix.com.pl

Strategia buforowa

Dok. Nr PLH6021

Wersja: 29-01-2010


2.1. Struktury danych

Na potrzeby dalszej części opisu wprowadza się następujące definicje:

BW bufor wymiany danych – podstawowy bufor służący do wymiany danych PLC-PC;

ZS zmienna synchronizująca – zmienna służąca do synchronizacji dostępu do BW;

ZA zmienna alarmów – zmienna służąca do wymuszenia przez PC przysłania mapy alarmów;

MA mapa alarmów – wewnętrzna mapa alarmów PLC służąca do przechowania aktualnego stanu wszystkich alarmów;

BZ bufor zdarzeń – wewnętrzny bufor PLC przechowujący zdarzenia alarmowe przed ich przepisaniem do BW.


2.3. Zmienna alarmów ZA

Zmienna żądania przesłania mapy bitowej alarmów ZA może być zmienną o długości 1 bajta lub 1 słowa:

Struktura ZA jest następująca:

Bajt 0 - A – bit 0 (najmłodszy) żądanie przesłania mapy bitowej alarmów

Bajt 1 - bez znaczenia

Bit A jest ustawiany przez PC. Wykonywane jest to w momencie inicjacji strategii alarmowej w celu ustalenia pełnego stanu alarmów.

PLC po stwierdzeniu, że bit A jest ustawiony, działa w poniższy sposób:

- zeruje bit A;

- blokuje dopisywanie zdarzeń do BZ; następne zmiany w alarmach są notowane tylko w MA;

- czeka na odbiór wcześniej ustawionych danych z BW;

- wysyła zawartość BZ;

- wysyła zawartość MA;


2.3.2. Bufor wymiany danych BW

Bufor wymiany BW jest zapisywany przez PLC, a czytany przez asix’a. Nie ma żadnych operacji wysłania danych do bufora przez asix’a.

Struktura BW jest zmienna w zależności od rodzaju przesyłanej informacji: zdarzeń alarmowych lub mapy alarmów. W każdym przypadku na początku bufora znajduje się 10–bajtowy nagłówek o strukturze:

Bajt 0 - typ informacji

Bit 0(najmłodszy) - rodzaj informacji: 1 - zdarzenia, 0 – alarmy

Bity 7-1 - wyzerowane

Bajt 1 - Bity 7-0 - cykliczny licznik sekwencji (przepisany z ZS)

Bajt 2 - MSB długości pakietu - długość nagłówka + długość danych

Bajt 3 - LSB długości pakietu

Bajt 4 - MSB daty alarmów - data w formacie DATE S7 – liczba dni od 1-1-1990

Bajt 5 - LSB daty alarmów

Bajt 6 - MSB czasu alarmów - czas w formacie TIME_OF_DAY S7 – liczba milisekund od 0:0:0

Bajt 7 - MSB-1 czasu alarmów

Bajt 8 - MSB-2 czasu alarmów

Bajt 9 - LSB czasu alarmów

Za obszarem nagłówka znajduje się bufor danych.

W przypadku przesyłu mapy bitowej alarmów stosowana jest następująca struktura bufora:

Bajt 0 - MSB numeru pierwszego alarmu w mapie

Bajt 1 - LSB numeru pierwszego alarmu w mapie

Bajty 2-n - Mapa bitowa

W przypadku, gdy cała mapa bitowa nie mieści się w buforze, może być ona przesyłana w kilku pakietach. Do rozróżnienia, o którą część mapy chodzi służy słowo numeru pierwszego alarmu. Alarmy są zawsze numerowane od 0. Dla przesyłu pierwszej części mapy (lub całej mapy w jednym kawałku) należy ustawić wartość 0.

Wszystkim zdarzeniom alarmowym wynikającym z analizy mapy alarmów nadawany jest czas pobrany z nagłówka BW.

W przypadku przesyłu zdarzeń alarmowych bufor danych składa się z sekwencji rekordów zdarzeń.

Bajt 0 - typ zdarzenia + MSB numeru alarmów

bit 7 (nastarszy) - typ zdarzenia: 1 – początek, 0 – koniec

bit 6 - znacznik przesunięcia czasu : 1 – brak, 0 – jest

bit 5-0 - MSB numeru

Bajt 1 - LSB numeru alarmów

Bajt 2 - MSB przesunięcia czasu (obecny gdy bit 6 w bajcie 0 jest równy 0)

Bajt 3 - LSB przesunięcia czasu (obecny gdy bit 6 w bajcie 0 jest równy 0)

Przesunięcie czasu liczone jest w milisekundach od czasu podanego w nagłówku BW. Jest to liczba bez znaku. Brak przesunięcia czasu oznacza sekwencję zdarzeń, które wystąpiły w tym samym momencie.

Przy przepisywaniu zdarzeń z BZ do BW należy stosować następujące zasady:

·- czas w nagłówku pochodzi z pierwszego przepisanego zdarzenia; przesunięcie dla pierwszego zdarzenia jest zawsze równe 0;

·- kolejne zdarzenie może być przepisane do bufora tylko wtedy, gdy jego data jest taka sama jak w nagłówku oraz da się wyliczyć 16-bitowe przesunięcie (maks. 65 sekund) względem czasu nagłówka. Zdarzenie, które jest cofnięte w czasie zawsze przerywa przepisywanie zdarzeń.

Numery alarmów są numerami wewnętrznymi sterownika liczonymi od 0. asix przelicza je na swoje numery.


2.4. Parametryzacja w systemie asix

W systemie asix5 parametryzacja strategii buforowej odbywa się przy użyciu modułu Architekt:

Architekt > Obszary i komputery > moduł System alarmów > zakładka Strategie / Buforowa

Zakładka umożliwia parametryzację strategii buforowej w programie AS poprzez zadeklarowanie jednej lub kilku pozycji o następującej składni:

<zmienna_buforowa>,<zmienna_synchronizująca>,<zmienna_alarmów>,<numer_alarmu>,

gdzie:

<zmienna_buforowa> - nazwa zmiennej Asmena służącej do wymiany informacji o alarmach; jej rozmiar musi być równy rozmiarowi bufora w sterowniku;

<zmienna_synchronizująca> - nazwa zmiennej Asmena służącej do synchronizacji dostępu do bufora;

<zmienna_alarmów> - nazwa zmiennej Asmena służącej do wystawiania przez PC żądania odczytu mapy alarmów;

<numer_alarmu> - określa numer alarmu w ramach systemu asix, nadawany pierwszemu alarmowi wykrywanemu przez deklarowaną strategię.


1. Przeznaczenie strategii buforowejWstęp_

1. Przeznaczenie strategii buforowej

Strategia Buforowa implementuje mechanizm wykrywania alarmów z rozdzielczością milisekundową. Funkcjonalnie jest równoważna Strategii Aktywnej. Nie wymaga jednak aktywnego przesyłu danych ze sterownika, co oznacza, że może być stosowana z dowolnym protokołem komunikacyjnym dolnym do przesyłu danych w postaci tablic słów 16-bitowych (strategia aktywna działa tylko z protokołem SinecL2).


2.2. Zmienna synchronizująca ZS

Zmienna synchronizująca jest zmienną o długości 2 bajtów (można używać zmiennej typu słowo, ale wówczas należy zapewnić, aby struktura danych odebrana po stronie asix

’a była zgodna z poniżej opisaną).

Struktura ZS jest następująca:

Bajt 0 - B – bit 0 (najmłodszy) żądanie odczytu danych z BW

Bity 7-1 – zawsze wyzerowane

Bajt 1 - C – bity 7-0 cykliczny licznik sekwencji

Zasady użycia ZS są następujące:

- asix monitoruje wartość ZS;

- jeżeli PLC chce wysłać dane, to ustawia zawartość BW, a następnie ustawia bit B wraz ze zinkrementowanym licznikiem pakietu C;

- jeżeli asix stwierdzi niezerową wartość bitu B oraz licznik pakietu C różny od poprzednio odebranego, to odczytuje bufor BW, a następnie zeruje bit B w ZS;

- wyzerowanie bitu B w słowie synchronizującym oznacza dla PLC, że asix odebrał dane i można wysłać następne zdarzenia alarmowe.

Jeżeli PLC ustawi dane w BW i ustawi bit żądania odczytu w ZS, to od tego momentu nie ma prawa zmienić BW i ZS. Dopiero odczyt danych przez PC zwolni BW do następnych przesyłów.


2.3.1. Sekwencja działań przy przepełnieniu bufora BZ

BZ może się przepełnić z dwóch powodów: PC nie odbiera alarmów w ogóle lub PC nie nadąża z odbiorem danych. W obu przypadkach po przepełnieniu PLC podejmuje następujące działania:

- blokuje dopisywanie zdarzeń do BZ; następne zmiany w alarmach są notowane tylko w MA;

- czeka na odbiór wcześniej ustawionych danych z BW;

- wysyła zawartość BZ;

- wysyła zawartość MA;


2.5. Przykład deklaracji struktury danych w S7


2. Opis działania

Działanie strategii opiera się o przesył informacji alarmowych poprzez bufor wymiany. Dostęp do bufora jest synchronizowany przez dwie dodatkowe zmienne.