ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
ForthLogic inst prog H P.1.2 120113.pdf - F&F
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sterowniki <strong>prog</strong>ramowalne MAX Logic<br />
Kontrolę stanu procesu komunikacyjnego umożliwia polecenie MODBUSSTATUS?, które przyjmuje postać:<br />
MODBUSSTATUS?<br />
gdzie parametrem jest numer wywołania cyklicznego (o wartości od 1 do 4), a odpowiedź określona jest<br />
parametrem , który może przyjmować następujące wartości:<br />
Kod Kody błędów zgłaszane przez urządzenie Master<br />
0 Brak błędów. Polecenie zostało wykonane poprawnie<br />
16 Urządzenie Slave nie odpowiedziało w zadanym czasie (Time Out)<br />
17 Błędna suma kontrolna w odpowiedzi z urządzenia Slave<br />
Pozostałe kody błędów zgłaszane są przez urządzenie Slave i ich znaczenie jest zgodne ze specyfiką protokołu Modbus:<br />
Kod<br />
Oznaczenie błędu według<br />
Modbus<br />
Opis błędu zgłaszanego przez urządzenie Slave<br />
1 ILLEGAL FUNCTION<br />
Kod polecenia przekazany przez urządzenie Master nie jest<br />
obsługiwany przez urządzenie Slave.<br />
2 ILLEGAL DATA ADDRESS<br />
Adres danych przekazany w zapytaniu z urządzenia Master nie jest<br />
dostępny w urządzeniu Slave.<br />
3 ILLEGAL DATA VALUE Nieprawidłowa wartość danych przekazanych z urządzenia Master.<br />
4 SLAVE DEVICE FAILURE<br />
Sygnalizacja wystąpienia niesprecyzowanego błędu w urządzeniu<br />
Slave podczas obsługi polecenia przekazanego z urządzenia Master.<br />
5 ACKNOWLEDGE<br />
Urządzenie Slave przyjęło polecenie z urządzenia Master, ale jego<br />
wykonanie wymaga dużo czasu.<br />
6 SLAVE DEVICE BUSY<br />
Urządzenie Slave jest zajęte obsługą wcześniejszego polecenia. W<br />
takim wypadku urządzenie Master musi ponowić zapytanie w<br />
późniejszym terminie, gdy urządzenie Slave będzie wolne.<br />
Zgłoszenie błędu o kodzie 16 oznacza, że urządzenie Slave nie odpowiedziało w zadanym czasie określonym parametrem<br />
TIMEOUT. Domyślnie czas ten przyjmuje wartość jednej sekundy, ale może on zostać zmieniony poprzez polecenie<br />
MODBUSTIMEOUT!. Składnia polecenia MODBUSTIMEOUT! ma następującą postać:<br />
MODBUSTIMEOUT!<br />
gdzie parametr określa nowy czas oczekiwania na odpowiedź z urządzenia Slave i może przyjmować wartości z<br />
przedziału od 1,0sek do 600,0sek, ze skokiem 0,1sek.<br />
Konwersja danych<br />
Podczas przekazywania danych w postaci bitów nie ma problemów z interpretacją danych, z uwagi na to, że przyjmują<br />
one wyłącznie dobrze określone wartości 1 (Prawda) oraz 0 (Fałsz). Inaczej rzecz się ma w przypadku przesyłania danych w<br />
postaci 16‐bitowych zmiennych rejestrowych. Problem wynika z tego, że standardowo w protokole Modbus<br />
przekazywane są zmienne całkowite bez znaku (czyli przyjmujące wartości 0..65535). W praktyce często wykorzystywane<br />
są również zmienne całkowite ze znakiem (przyjmujące wartości ‐32767…32767) oraz złożenie kilku zmiennych<br />
rejestrowych na liczbę zmiennoprzecinkową.<br />
Słowa umożliwiające konwersję pomiędzy różnymi formatami liczbowymi:<br />
‐ US>S ‐ służy do konwersji liczby całkowitej bez znaku, na liczbę całkowitą ze znakiem.<br />
‐ S>US ‐ służy do konwersji liczby całkowitej ze znakiem na liczbę całkowitą bez znaku.<br />
Przykład: Jeżeli w rejestrze 16‐bitowym zapisane są same jedynki (0xFFFF w postaci 16‐owej), to w zależności od<br />
interpretacji może ona oznaczać 65535 – jeśli liczba jest traktowana jako liczba bez znaku, lub ‐1 – gdy jest ona<br />
traktowana jako liczba ze znakiem.<br />
Poniżej przedstawiony jest schemat przekształcenia:<br />
> 65535 US>S<br />
> ‐1 (OK.)<br />
‐ 32 ‐