Protokol MTF (Morse Technology Format) slouží k bezpečnému přenosu dat mezi body s technologickou jednotkou SEP/ADIO. Formát MTF je schopen využívat i protokol MODBUS s využitím překladu funkcí ART tabulkou viz popis MODBUS.
Struktura paketu MTF který je vysílán z interface do sítě MORSE:
| header/32 | data_part | chksum/16 |
Paket se skládá z hlavičky, několika datových bloků a kontrolního
součtu. Bloků data_part
může být různý počet, formát každého
z nich je určen položkou command
a zpracovávají se
postupně za sebou.
Hlavička:
|format/8|err/8|reqNo/8|respNo/8|
format/8 | začátek paketu 0x01 |
err/8 | chybové hlášení |
reqNo/8 | číslo požadavku |
respNo/8 | číslo odpovědi |
Datové bloky:
|typ/8|ft/1|cmd/3|size/4|cnt/4|offset/12| data |
Krátký rámec je obvyklý v zařízení SEP/ADIO. Dlouhý rámec je ve vývoji, jeho formát je uveden na konci této sekce.
typ/8 | rozlišuje datové bloky podle obsahu a definuje formát části
|
ft/1 | rozlišení rámce, 1 – krátký, 0 – dlouhý |
cmd/3 | command
|
size/4 | velikost jednoho bloku dat ve wordech, příklad:
|
cnt/4 | počet datových bloků, příklad pro ADIO:
|
offset/12 | adresa prvního přenášeného dig. nebo analog. kanálu, příklad pro SEP:
|
data | data – délka dat (wordy) je určena součinem |
Kontrolní součet:
|chksum/16|
Formát krátkého a dlouhého rámce MTF
Krátký rámec je používán v zařízení SEP/ADIO:
|typ/8|ft/1|cmd/3|size/4|cnt/4|offset/12| data | ft=1 - krátký rámec
Dlouhý rámec:
|typ/8|ft/1|res/7|cmd/3|res/1|size/4|cnt/8|offset/16| data | ft=0 - dlouhý rámec
Příklad krátkého rámce generovaného modulem ADIO, rozepsáno na datové bloky:
0100 C300 formát req No,resp No 01C3 1000 0003 0003 0000 Dinp,spont,3word 1×data,000offset mask status stav=00 06C3 1000 0003 0003 0000 Dout,spont,3word 1×data,000offset mask status stav=00 02C1 2000 0C82 0001 Ainp,spont,1word 2×data,000offset OK,stav0xC82 OK,stav=0x001 07C1 2000 0C88 0000 Aout,spont,1word 2×data,000offset OK,stav0xC88 OK,stav=0x000 AFE1 chksum
První paket po zapnutí stanice při nepřipojených vstupech a nenastavených výstupech.
17:22:12.017| |00000021 00000012|G00I OUT 42||8A 5user 0100 C202 01C3 1000 0003 0003 0000 06C3 1000 0003 0003 0000 02C1 2000 0008 0001 07C1 2000 0000 0000 C9E1
Nastavení Aout0 pomocí testovacího menu na 15,67 mA, výstup
je propojen na vstup Ain0
A0u15670
Spontánní paket informující o změně stavu
17:22:39.617| |00000021 00000012|G00I OUT 42||8A 6user 0100 C300 01C3 1000 0003 0003 0000 06C3 1000 0003 0003 0000 02C1 2000 0C82 0001 07C1 2000 0C88 0000 AFE1 01 00 C3 00 + 01 - formát/8 00 - error/8 C3 - číslo žádosti MTF/8 00 - číslo odpovědi MTF/8 data part 1 + 01 C3 10 00 00 03 00 03 00 00 + 01 - typ/8 (01 = digitální vstupy) C3 - 1100 0011 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0011 - size/4 = 3 - velikost bloku dat (wordy) 10 00 - 0001 0000 0000 0000 0001 xxxx xxxx xxxx - cnt/4 = 1 počet bloků dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 00 03 - maska/16 00 03 - status/16 00 00 - stav digitálních vstupů/16 data part 2 + 06 C3 10 00 00 03 00 03 00 00 + 06 - typ/8 (06 = digitální výstupy) C3 - 1100 0011 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0011 - size/4 = 3 - velikost dat (wordy) 10 00 - 0001 0000 0000 0000 0001 xxxx xxxx xxxx - cnt/4 = 1 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 00 03 - maska/16 00 03 - status/16 00 00 - stav digitálních výstupů/16 data part 3 + 02 C1 20 00 0C 82 00 01 + 02 - typ/8 (02 = analogové vstupy) C1 - 1100 0001 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0001 - size/4 = 1 - velikost dat (wordy) 20 00 - 0010 0000 0000 0000 0010 xxxx xxxx xxxx - cnt/4 = 2 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 0C 82 - 0000 1100 1000 0010 0xxx xxxx xxxx xxxx - validní data/1 x0xx xxxx xxxx xxxx - hodnota v rozsahu/1 xx00 1100 1000 0010 - naměřená hodnota/14 00 01 - 0000 0000 0000 0001 0xxx xxxx xxxx xxxx - data OK/1 x0xx xxxx xxxx xxxx - hodnota v rozsahu/1 xx00 0000 0000 0001 - naměřená hodnota/14 data part 4 + chksum + 07 C1 20 00 0C 88 00 00 + AFE1 07 - typ/8 (07 = analogové výstupy) C1 - 1100 0001 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0001 - size/4 = 1 - velikost dat (wordy) 20 00 - 0010 0000 0000 0000 0010 xxxx xxxx xxxx - cnt/4 = 2 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 0C 88 - 0000 1100 1000 1000 0xxx xxxx xxxx xxxx - validní data/1 x0xx xxxx xxxx xxxx - rezerva/1 xx00 1100 1000 1000 - nastavená hodnota/14 00 00 - --//--
Spontánní pakety s periodou nastavenou v menu GPe0pd
t(i)me:60s
17:23:12.017| |00000021 00000012|G00I OUT 42||8A 7user 0100 C400 01C3 1000 0003 0003 0000 06C3 1000 0003 0003 0000 02C1 2000 0C82 0001 07C1 2000 0C88 0000 AEE1 17:24:12.017| |00000021 00000012|G00I OUT 42||8A 0user 0100 C500 01C3 1000 0003 0003 0000 06C3 1000 0003 0003 0000 02C1 2000 0C82 0001 07C1 2000 0C88 0000 ADE1
Komunikace MR – SEP na SCC je ve formátu Modbus:
09:19:50.816 tx 10 | S00 011E 000F A00F A000 41C4 09:19:50.877 rx;i 29 | S00 011E 1800 FF00 C72C 7A00 5E00 1C00 6500 7500 0E00 2100 620F 9B0F 9ED4 9D 09:19:52.817 tx 8 | S00 0104 0010 0010 F003 09:19:52.867 rx;i 37 | S00 0104 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0093 79
Pokračuje rozhraní CNI ve formátu MTF:
09:19:54.001| |69609074 00000075|S00I OUT 54||8A 1user 0100 0107 01C3 1000 00FF 00FF 00FF 06C3 1000 00FF 00FF 0000 02C1 8000 4000 4000 4000 4000 4000 4000 4000 4000 07C1 2000 0000 0000 25F6
Paket rozepsaný na jednotlivé části:
| hlavička | data_part 1 | data_part 2 | data_part 3 | data_part 4 | chksum | 0100 0107 01C3 1000 00FF 00FF 00FF 06C3 1000 00FF 00FF 0000 02C1 8000 4000 4000 4000 4000 4000 4000 4000 4000 07C1 2000 0000 0000 25F6 hlavička 01 00 01 07 + 01 - formát/8 00 - error/8 01 - číslo žádosti MTF/8 07 - číslo odpovědi MTF/8 data part 1 + 01 C3 10 00 00 FF 00 FF 00 FF + 01 - typ/8 (01 = digitální vstupy) C3 - 1100 0011 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0011 - size/4 = 3 - velikost dat (wordy) 10 00 - 0001 0000 0000 0000 0001 xxxx xxxx xxxx - cnt/4 = 1 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 00 FF - maska/16 00 FF - status/16 00 FF - stav digitálních vstupů/16 data part 2 + 06 C3 10 00 00 FF 00 FF 00 00 + 06 - typ/8 (06 = digitální výstupy) C3 - 1100 0011 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0011 - size/4 = 3 - velikost dat (wordy) 10 00 - 0001 0000 0000 0000 0001 xxxx xxxx xxxx - cnt/4 = 1 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 00 FF - maska/16 00 FF - status/16 00 00 - stav digitálních výstupů/16 data part 3 + 02 C1 80 00 40 00 40 00 40 00 40 00 40 00 40 00 40 00 40 00 + 02 - typ/8 (02 = analogové vstupy) C1 - 1100 0001 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0001 - size/4 = 1 - velikost dat (wordy) 80 00 - 1000 0000 0000 0000 1000 xxxx xxxx xxxx - cnt/4 = 8 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 40 00 - 0100 0000 0000 0000 0xxx xxxx xxxx xxxx - validní data/1 x1xx xxxx xxxx xxxx - měřená hodnota mimo rozsah/1 xx00 0000 0000 0000 - naměřená hodnota/14 40 00 - --//-- 40 00 - --//-- 40 00 - --//-- 40 00 - --//-- 40 00 - --//-- 40 00 - --//-- 40 00 - --//-- data part 4 + chksum + 07 C1 20 00 00 00 00 00 + 25F6 07 - typ/8 (07 = analogové výstupy) C1 - 1100 0001 1xxx xxxx - ft/1 = 1 - krátký rámec x100 xxxx - cmd/3 = 4 - spontánní data xxxx 0001 - size/4 = 1 - velikost dat (wordy) 20 00 - 0010 0000 0000 0000 0010 xxxx xxxx xxxx - cnt/4 = 2 počet dat xxxx 0000 0000 0000 - offset/12 = 0 začíná od 0 00 00 - 0000 0000 0000 0000 0xxx xxxx xxxx xxxx - validní data/1 x0xx xxxx xxxx xxxx - rezerva/1 xx00 0000 0000 0000 - nastavená hodnota/14 00 00 - --//--
| hlavička | data_part 1 | data_part 2 | data_part 3 | chksum | hlavička paketu 01 00 00 00 + 01 - formát/8 00 - error/8 00 - číslo žádosti MTF/8 00 - číslo odpovědi MTF/8 data_part 1 + 01 00 23 01 00 00 + 000F 000F 0000 + 01 - typ (01 = digitální vstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 23 - 0010 0011 001x xxxx - cmd/3 = 1 - žádost o čtení xxx0 xxxx - res/1 - reserva xxxx 0011 - size/4 = 3 - velikost dat (wordy) 01 - cnt/8 = 1 - počet dat 00 00 - offset/16 = 0 začíná od 0 000F 000F 0000 - mask, status, value data_part 2 + 02 00 21 03 00 00 + 00AA 00BB 00CC + 02 - typ (02 = analogové vstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 21 - 0010 0001 001x xxxx - cmd/3 = 1 - žádost o čtení xxx0 xxxx - res/1 - reserva xxxx 0001 - size/4 = 1 - velikost dat (wordy) 03 - cnt/8 = 3 - počet dat 00 00 - offset/16 = 0 začíná od 0, přenáší wordy 0,1,2 00AA 00BB 00CC - Ainp 0,1,2 data_part 3 + chksum + 02 00 21 01 00 07 + 00DD + chksum 02 - typ (02 = analogové vstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 21 - 0010 0001 001x xxxx - cmd/3 = 1 - žádost o čtení xxx0 xxxx - res/1 - reserva xxxx 0001 - size/4 = 1 - velikost dat (wordy) 01 - cnt/8 = 1 - počet dat 00 07 - offset/16 = 7 začíná od 7, přenáší word 7 00DD - Ainp 7
| hlavička | data_part 1 | data_part 2 | data_part 3 | chksum | hlavička paketu 01 00 00 00 + 01 - formát/8 00 - error/8 00 - číslo žádosti MTF/8 00 - číslo odpovědi MTF/8 data_part 1 + 06 00 03 01 00 00 00 94 00 94 AA AA + 06 - typ (06 = digitální výstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 03 - 0000 0011 000x xxxx - cmd/3 = 0 - žádost o zápis xxx0 xxxx - res/1 - reserva xxxx 0011 - size/4 = 3 - velikost dat (wordy) 01 - cnt/8 = 1 - počet dat 00 00 - offset/16 = 0 začíná od 0 00 94 - 0000 0000 1001 0100 - maska pro Dout 2,4,7/16 00 94 - 0000 0000 1001 0100 - status/16 AA AA - stav digitálních výstupů/16 data_part 2 + 07 00 01 02 00 02 + BB BB BB BB + 07 - typ (07 = analogové výstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 01 - 0000 0001 000x xxxx - cmd/3 = 0 - žádost o zápis xxx0 xxxx - res/1 - reserva xxxx 0001 - size/4 = 1 - velikost dat (wordy) 02 - cnt/8 = 2 - počet dat 00 02 - offset/16 = 2 začíná od 2. výstupu BB BB - data Aout 2 BB BB - data Aout 3 data_part 3 + chksum + 02 00 21 01 00 05 + CC CC + chksum 02 - typ (02 = analogové vstupy) 00 - 0000 0000 0xxx xxxx - ft/1 = 0 - dlouhý rámec x000 0000 - res/7 - reserva 21 - 0010 0001 001x xxxx - cmd/3 = 1 - žádost o čtení xxx0 xxxx - res/1 - reserva xxxx 0001 - size/4 = 1 - velikost dat (wordy) 01 - cnt/8 = 1 - počet dat 00 05 - offset/16 = 5 začíná na 5. vstupu CC CC - data Ainp 5
Konfigurační parametry pro modul ADIO jsou popsány v dokumentu Protokol ADIO pro MORSE.
Konfigurační parametry pro vstupní a výstupní jednotku SEP jsou popsány v dokumentu Protokol SEP pro MORSE.