Uwaga: poniższy opis odnosi się jedynie do platformy 3000 i nowszych. Działanie sieci sterowników po magistrali RS-485 w platformach starszych jest bardziej enigmatyczne i trudne do opisania w zrozumiały sposób.
Sterowniki mogą się komunikować ze sobą (tzn. przesyłać sobie różne parametry) bezpośrednio, tzn. bez udziału komputera. Parametry mogą być przesyłane między sterownikami przy pomocy sieci zbudowanej na magistrali RS-485. Działanie sieci oparte jest o architekturę Token Bus.
Parametry transmisji danych w sieci sterowników:
prędkość: 2400 bps
bity danych: 8
bity stopu: 1
bit parzystości: brak
Format ramek przesyłanych w ramach transmisji w sieci:
[0x02]<T><S><L>,{-DANE-},SUMA_KONTROLNA[0x03]gdzie:
<T> - typ ramki; dozwolone typy to:
1 - ramka służąca przekazaniu znacznika kolejnemu węzłowi,
2 - ramka służąca zapraszaniu do pierścienia kolejnych węzłów,
3 - ramka odpowiedzi na zaproszenie do pierścienia jednocześnie informująca czyim następnikiem jest stacja wysyłająca tą ramkę,
4 - ramka z danymi,
<S> - identyfikator węzła nadającego daną ramkę przesyłany jako znak ASCII z zakresu liter i cyfr,
<L> - ilość przesyłanych pól danych w danej ramce; w przypadku ramek typu 1, 2 i 3 ilość pól danych wynosi zawsze 1,
{-DANE-} - są to kolejne wartości przesyłanych przez dany węzeł danych oddzielane znakiem przecinka; są one różnie interpretowane dla różnych typów ramek:
dla ramek typu 1 jest to identyfikator węzła do którego przekazywany jest znacznik,
dla ramek typu 2 jest to identyfikator węzła, który ma zostać następcą węzła chcącego się dołączyć do pierścienia,
dla ramek typu 3 jest to identyfikator węzła, na którego zaproszenie odpowiadamy (czyli identyfikator naszego poprzednika w pierścieniu),
dla ramek typu 4 są to wartości kolejnych parametrów przesyłanych przez dany węzeł,
SUMA_KONTROLNA - szesnastobitowa suma kontrolna będąca sumą znaków ASCII składających się na typ ramki, identyfikator węzła będącego nadawcą ramki, ilość przesyłanych pól danych, a także wartości liczbowej poszczególnych z pól danych (w przypadku ramki typu 4) lub znaku stanowiącego przesyłane dane (w przypadku ramek pozostałych typów).
Podstawowe założenia pracy sieci:
sieć jest siecią ze znacznikiem (tzn. stacje kolejno przekazują sobie uprawnienia do nadawania danych), opartą o fizyczną topologię szyny, ale o logiczną topologię pierścienia,
w sieci istnieje jeden wyróżniony węzeł zwany monitorem, który ma za zadanie utrzymywać spójność sieci, dbać o obecność znacznika na szynie, umożliwiać dołączanie się do pierścienia nowym stacjom itp.; węzeł ten jest wybierany automatycznie poprzez elekcję wśród wszystkich węzłów sieci aktualnie obecnych na szynie,
każdy węzeł sieci posiada unikalny identyfikator (złożony z jednego znaku ASCII z pośród liter i cyfr), który jednoznacznie identyfikuje go w sieci; dodatkowo każdy węzeł w sieci zna identyfikator węzła, który jest po nim (jego następnika), a także identyfikator węzła, który jest przed nim (jego poprzednika), co pozwala na utrzymanie logicznej struktury pierścienia,
dane przesyłane między węzłami nie są adresowane do konkretnego odbiorcy, a przesyłane w sposób rozgłoszeniowy, aby każdy z węzłów mógł dowolnie odczytywać dane wysyłane przez inne węzły,
transmisja na szynie jest półdupleksowa (jest to konieczność ze względu na zastosowane w sterownikach układu MAX-483, które jedynie ten tryb transmisji obsługuję), a więc transmisja danych pozbawiona jest wykrywania kolizji.
Działanie każdego z węzłów w sieci oparte jest o rozszerzony automat stanowy. Wyróżnić można następujące najważniejsze stany automatu (implementacja protokołu w sterowniku wyróżnia dodatkowo inne stany, ale są one tylko pomocnicze i mają na celu łatwiejszą realizację zadań stanów opisanych poniżej):
Stan odłączenia węzła od sieci - jest to stan, w którym znajduje się sterownik zaraz po włączeniu zasilania, a także który jest przyjmowany w przypadku wykrycia awarii w sieci. W stanie tym węzeł uznaje, że nie jest częścią pierścienia i czeka na zaproszenie do niego, a w przypadku wykrycia braku komunikacji na szynie przez określony czas - sam rozpoczyna budowanie nowego pierścienia.
Stan budowania pierścienia - jest to stan, do którego węzeł przechodzi ze stanu odłączenia od sieci w przypadku, gdy przez zbyt długi okres czasu nie zostanie wykryta żadna komunikacja na szynie. W stanie tym przeprowadzana jest elekcja monitora: sterownik nadaje swój identyfikator na szynę przez czas proporcjonalny do jego wartości liczbowej, a następnie sprawdza, czy na szynie panuje cisza: jeśli tak, to uznaje, że wygrał elekcję i rozpoczyna zapraszanie innych węzłów do pierścienia; jeśli nie - wraca do stanu odłączenia od sieci i czeka na zaproszenie do pierścienia od węzła, który wygrał elekcję.
Stan zapraszania węzłów do pierścienia - jest to stan, który może przyjmować tylko węzeł będący monitorem w sieci. Przyjmuje on go zaraz po wygraniu elekcji, a następnie co pewien okres czasu. W tym stanie monitor wysyła zaproszenia do pierścienia dla stacji, które mogą chcieć się do niego dołączyć - każdorazowo zaproszenia są wysyłane tak długo, aż ostatnie z zaproszeń pozostanie bez odpowiedzi. Po otrzymaniu odpowiedzi na zaproszenie dana stacja włączana jest w pierścień - aktualizowane są informacje o stacji poprzedniej i następnej przechowywane przez monitor, a także przez nowo dołączaną stację w ten sposób, że nowo dołączana stacja włączana jest w pierścień między monitor a jego dotychczasowego następnika.
Stan posiadania tokena - jest to stan, który przyjmuje każdy z węzłów w sieci po otrzymaniu tokena od węzła go poprzedzającego. Każdy z węzłów w tym stanie nadaje swoje dane na szynę. W przypadku monitora nadanie danych poprzedzone jest dodatkowo wykonaniem zaproszenia ewentualnych nowych stacji do pierścienia, jeśli akurat upłynął limit czasu, co który takie zaproszenie ma zostać wykonane. Po nadaniu danych węzeł odczekuje pewien ustalony okres czasu, a następnie przekazuje token węzłowi, który jest w pierścieniu po nim.
Stan bezczynności w pierścieniu - jest to stan, w którym każdy z węzłów spędza większość swojego okresu życia w pierścieniu: stan, w którym dany węzeł jest częścią pierścienia, ale w danej chwili nie posiada znacznika, więc nie wykonuje żadnych akcji. W stanie tym węzeł odczytuje dane, które inne węzły przesyłają na szynę i oczekuje na otrzymanie znacznika. Dodatkowo monitor znajdując się w tym stanie dba, aby znacznik nie zginął z pierścienia - jeśli nie wykryje go na szynę przez określony czas, to uznaje, iż został on stracony i przywraca go wysyłając do swojego następnika. Jeżeli przez określony czas dany węzeł nie otrzyma żadnej poprawnej ramki z sieci lub jeżeli przez określony czas na szynie nie zostanie zauważona obecność monitora, to węzeł uznaje pracę sieci za wadliwą i przechodzi do stanu odłączenia od sieci w celu ponownego jej zbudowania.
Stan otrzymania zaproszenia do pierścienia - jest to stan, który przyjmuje węzeł, który znajdował się w stanie odłączenia od sieci i otrzymał zaproszenie do pierścienia. Po otrzymaniu zaproszenia węzeł czeka przez czas proporcjonalny do wartości liczbowej swojego identyfikatora (w celu uniknięcia kolizji z innymi węzłami chcącymi odpowiedzieć na zaproszenie), a następnie wysyła odpowiedź na zaproszenie. Jeżeli w czasie oczekiwania nadejdzie kolejne zaproszenie (możliwe to jest gdy inny węzeł odpowiedział na poprzednie zaproszenie wcześniej), to oczekiwanie rozpoczynane jest od nowa. Po wysłaniu odpowiedzi na zaproszenie węzeł przechodzi do stanu bezczynności w pierścieniu.
Poprzedni | Spis treści | Następny |
Programowanie pamięci EEPROM | Początek rozdziału | Rozwiązywanie problemów związanych ze sterownikiem Z-Elektronik |