MTF

Verze pro tisk

Protokol MTF pro MORSE

verze 10.0.62.0

29. června 2015

1. Úvod

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.

2. Formát dat

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 | data |

  • 00 – rezervováno

  • 01 – digi input – jeden blok dat obsahuje informaci o max. 16 vstupech, každému vstupu přísluší 1 bit z wordů mask, status a value, přitom value je vlastní hodnota vstupu

    |mask/16|status/16|value/16|
       mask=0  status=0 ... chybná data
       mask=0  status=1 ... nedefinovaná data (tzv. třetí stav)
       mask=1  status=0 ... chybná data, nesouhlasí velikost
       mask=1  status=1 ... data OK
       value            ... hodnota digitálního vstupu
  • 02 – analog input – jeden blok dat obsahuje informaci o 1 vstupu (počet bloků je určen parametrem cnt).

    |invalid/1|overrun/1|value/14|
       invalid=1  ... Error description
       invalid=0  ... data OK
       overrun=0  ... hodnota je v intervalu (0)4-20mA
       overrun=1  ... value/14 hodnota je mimo interval  4-20mA 
                             (0x4000 <4mA, 0x4FFF > 20mA)
       value/14   ... hodnota analogového vstupu
  • 03 – calib – pro ADIO/SEP

    |k/16|q/16|
  • 04 – prodident – identifikace produktu ADIO/SEP

    |typ/8|res/8|hw_ver/16|res/16|prod_num/16|res/16|date/32|sign/16|

  • 05 – holding registers

    Word, read/write
  • 06 – digi output

    |mask/16|status/16|value/16|
       mask=0  status=0 ...chybná data
       mask=0  status=1 ...nedefinovaná data (tzv. třetí stav)
       mask=1  status=0 ...chybná data, nesouhlasí velikost
       mask=1  status=1 ...data OK
       value            ... hodnota digitálního výstupu
  • 07 – analog output

    |invalid/1|res/1|value/14|
       invalid=1  ...value/14 Error description
       invalid=0  ...value/14 data OK
       value/14   ... hodnota analogového výstupu
  • 08 – counters

    |invalid/1|res/1|value/30|
       invalid=1  ...value/30 Error description
       invalid=0  ...value/30 data OK
  • 09 – nepoužito

ft/1

rozlišení rámce, 1 – krátký, 0 – dlouhý

cmd/3

command

  • 0 – write req – žádost o zápis

  • 1 – read req – žádost o čtení

  • 2 – write resp – odpověď na žádost o zápis

  • 3 – read resp – odpověď na žádost o čtení

  • 4 – spontánní data (použité ve spontánním režimu SEP/ADIO)

  • 5 – spontánní alarm

size/4

velikost jednoho bloku dat ve wordech, příklad:

  • digital input, size = 3 word

  • analog input, size = 1 word

cnt/4

počet datových bloků, příklad pro ADIO:

  • digital input, cnt = 1 blok se 16 vstupy, využity jen vstupy 0 a 1

  • analog input, cnt = 2 bloky, každý pro jeden analogový vstup s max 14 bity

offset/12

adresa prvního přenášeného dig. nebo analog. kanálu, příklad pro SEP:

  • čtení sady digitálních vstupů 0 až 7 -> offset = 0, cnt = 1

  • čtení analogových vstupů 0 a 1 -> offset = 0, cnt = 2

  • čtení analogových vstupů 5, 6, 7 -> offset = 5, cnt = 3

data

data – délka dat (wordy) je určena součinem size×cnt

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

3. Příklady

3.1. Monitoring spontánního MTF paketu na interface ADIO při změně AI a AO.

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

3.2. Monitoring seriové linky a interface s měřící hlavicí SEP ve formátu MTF.

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 -  --//--

3.3. Čtení digit. hodnot s offsetem 0 a analog. hodnot s offsety 0,1,2,7, dlouhý rámec.

| 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

3.4. Zápis binárních výstupů 2,4,7 s offsetem 0 a analogových výstupů s offsetem 2,3 a čtení analogového vstupu s ofsetem 5, dlouhý rámec.

| 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

4. Konfigurace

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.