Rozdział 5. Protokół komunikacyjny sterownika

Spis treści
5.1. Odczyt danych ze sterownika
5.2. Zapis danych do sterownika
5.3. Odczyt zaprogramowanych wartości parametrów stałych i paczek czasowych (tylko platforma 2315 i nowsze)
5.4. Programowanie parametrów stałych (tylko platforma 2315 i nowsze)
5.5. Programowanie paczek czasowych (tylko platforma 2315 i nowsze)
5.5.1. Resetowanie paczek czasowych (tylko platforma 2315 i nowsze)
5.5.2. Wybór typu paczek czasowych (tylko platforma 2315 i nowsze)
5.5.3. Właściwe programowanie paczek czasowych (tylko platforma 2315 i nowsze)
5.6. Identyfikacja platformy oraz wersji programu technologicznego (tylko platforma 2315 i nowsze)
5.7. Programowanie zegara czasu rzeczywistego sterownika (tylko platforma 3000 i nowsze)
5.8. Programowanie pamięci EEPROM
5.9. Komunikacja z innymi sterownikami po magistrali RS-485

Sterownik umożliwia komunikację z innymi sterownikami lub komputerem w celu:

Parametry techniczne transmisji podczas komunikacji sterownika z komputerem przy pomocy pierwszego portu szeregowego (zarówno w trybie RS-232, jak i RS-485):

Maksymalna długość pojedynczego polecenia jest ograniczona pojemnością bufora w sterowniku i wynosi 256 bajtów.

5.1. Odczyt danych ze sterownika

W celu odczytu danych ze sterownika należy wysłać do sterownika następujący ciąg znaków (w przypadku platformy 3000 lub nowszej można pominąć początkowy znak [0x11]):

[0x11][0x02]P<?>[0x03]
gdzie:

Protokół ten jest protokołem typu <-ASCII_D-> (zobacz Rozdział 16). W nawiasach kwadratowych znajdują się kody znaków ASCII.

Raport wysłany przez sterownik można przedstawić schematycznie w następujący sposób:

    {NAGŁÓWEK}[0x0D]{yy/mm/dd hh:mm}[0x0D]{-DANE-}[0x0D]SUMA_KONTROLNA[0x0D][0x0D]
Protokół ten jest protokołem typu <-ASCII_D-> (zobacz Rozdział 16).

Znaczenie poszczególnych elementów raportu:

Przykładowy ciąg znaków dla 17 przesyłanych parametrów wygląda następująco:

2[0x0D]1[0x0D]1[0x0D]00/01/14 02:34[0x0D]160[0x0D]0[0x0D]0[0x0D]0[0X0D]0[0x0D]0[0x0D]0[0x0D]0[0x0D]0[0x0D]300[0x0D]0[0x0D]100[0x0D]200[0x0D]5[0x0D]128[0x0D]300[0x0D]400[0x0D]2624[0x0D][0x0D]

W celu odczytu tak zakodowanej ramki można użyć funkcji bibliotecznej języka C strtok().