Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БЭМЗ полищук доки / 2020 / А2000 минск / АСКВ2 БУ max90-ru_v1.20.pdf
Скачиваний:
11
Добавлен:
21.12.2020
Размер:
11.44 Mб
Скачать

Модули мобильной системы X90

Настройка FlatStream

При изменении способа структурирования сообщений также изменяется способ организации данных в массиве передачи/приема. Для приведенного ранее примера потребуются следующие изменения.

Мультисегментный MTU

Если разрешены мультисегментные MTU, то можно использовать «свободное место» в MTU. Это «свободное место» возникает, если последний сегмент в сообщении занимает не весь MTU. Мультисегментные MTU позволяют использовать эти биты для передачи следующих управляющих байтов и сегментов. Управляющая программа устанавливает бит nextCBPos в управляющем байте, так что приемник может правильно идентифицировать следующий управляющий байт.

Пример

Три автономных сообщения (7 байтов, 2 байта и 9 байтов) передаются с использованием MTU размером 7 байтов. Конфигурация позволяет передавать мультисегментные MTU.

 

 

 

 

Сообщение 1:

 

 

 

 

 

Массив передачи/приема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из 7 элементов USINT в соответствии с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

A2

A3

 

A4

 

A5

A6

A7

 

 

 

настраиваемым размером MTU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мультисегментный MTU

 

 

 

 

 

 

Сообщение 2:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C1

A1

A2

A3

A4

A5

A6

 

 

 

 

 

B1

 

B2

 

 

 

 

 

для цикла шины 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C2

A7

C3

B1

B2

C4

D1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 2

 

 

 

 

Сообщение 3:

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C5

D2

D3

D4

D5

D6

D7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 3

 

D1

D2

D3

D4

 

D5

 

D6

D7

D8

D9

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C6

D8

D9

C0

-

-

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Больше нет данных для передачи

 

 

для цикла шины 4

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C0

-

-

-

-

-

-

 

 

 

 

для цикла шины 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

-

 

 

- ...

 

 

 

 

C0

-

-

-

-

-

-

 

 

 

 

 

 

 

 

 

для цикла шины 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 55: Массив передачи/приема (мультисегментные MTU)

Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства

227

Модули мобильной системы X90

Прежде всего сообщения необходимо разделить на сегменты. В конфигурации по умолчанию требуется начинать каждую последовательность с управляющего байта. Однако свободные биты MTU в конце сообщения заполняются данными из следующего сообщения. С этой опцией бит nextCBPos всегда установлен, если после управляющего байта отправляются полезные данные.

MTU = 7 байтов → Макс. длина сегмента = 6 байтов

Сообщение 1 (7 байтов)

Первый сегмент = Управляющий байт + 6 байтов данных (MTU заполнен)

Второй сегмент = Управляющий байт + 1 байт данных (в MTU остается еще 5 свободных байтов)

Сообщение 2 (2 байта)

Первый сегмент = Управляющий байт + 2 байта данных (в MTU остается еще 2 свободных байта)

Сообщение 3 (9 байтов)

Первый сегмент = Управляющий байт + 1 байт данных (MTU заполнен)

Второй сегмент = Управляющий байт + 6 байтов данных (MTU заполнен)

Третий сегмент = Управляющий байт + 2 байта данных (в MTU остается еще 4 свободных байта)

Больше нет сообщений

Управляющий байт C0

Для каждого сегмента должен быть создан уникальный управляющий байт. Кроме того, для сохранения связи в дежурном режиме генерируется управляющий байт C0.

C1 (управляющий байт 1)

 

 

C2 (управляющий байт 2)

 

 

C3 (управляющий байт 3)

 

 

– SegmentLength / длина сегмента

=

6

– SegmentLength / длина сегмента

=

1

– SegmentLength / длина сегмента

=

2

(6)

 

 

(1)

 

 

(2)

 

 

– nextCBPos / позиция след.

=

64

– nextCBPos / позиция след. управ-

=

64

– nextCBPos / позиция след. управ-

=

64

управляющего байта (1)

 

 

ляющего байта (1)

 

 

ляющего байта (1)

 

 

– MessageEndBit / признак конца

=

0

– MessageEndBit / признак конца

=

128

– MessageEndBit / признак конца

=

128

сообщения (0)

 

 

сообщения (1)

 

 

сообщения (1)

 

 

Управляющий байт

Σ

70

Управляющий байт

Σ

193

Управляющий байт

Σ

194

Таблица 23: Определение управляющих байтов FlatStream для примера с мультисегментными MTU (часть 1)

Осторожно!

Вторую последовательность разрешается квитировать посредством SequenceAck, только если она была полностью обработана. В данном примере вторая последовательность содержит три различных сегмента, т.е. в программе должно быть настроено достаточное количество массивов приема для ее обработки.

C4 (управляющий байт 4)

 

 

C5 (управляющий байт 5)

 

 

C6 (управляющий байт 6)

 

 

– SegmentLength / длина сегмента

=

1

– SegmentLength / длина сегмента

=

6

– SegmentLength / длина сегмента

=

2

(1)

 

 

(6)

 

 

(2)

 

 

– nextCBPos / позиция след.

=

6

– nextCBPos / позиция след. управ-

=

64

– nextCBPos / позиция след. управ-

=

64

управляющего байта (6)

 

 

ляющего байта (1)

 

 

ляющего байта (1)

 

 

– MessageEndBit / признак конца

=

0

– MessageEndBit / признак конца

=

0

– MessageEndBit / признак конца

=

128

сообщения (0)

 

 

сообщения (1)

 

 

сообщения (1)

 

 

Управляющий байт

Σ

7

Управляющий байт

Σ

70

Управляющий байт

Σ

194

Таблица 24: Определение управляющих байтов FlatStream для примера с мультисегментными MTU (часть 2)

228

Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства

Модули мобильной системы X90

Большие сегменты

Максимальная длина сегментов ограничена 63 байтами. Это означает, что они могут быть больше, чем активный MTU. При передаче эти большие сегменты распределяются между несколькими последовательностями. Последовательности могут полностью состоять из полезных данных и не содержать управляющего байта.

Информация:

Сообщение все еще можно разделить на несколько сегментов, поэтому размер пакета данных не ограничен 63 байтами.

Пример

Три автономных сообщения (7 байтов, 2 байта и 9 байтов) передаются с использованием MTU с шириной 7 байтов. Конфигурация позволяет передавать большие сегменты.

 

 

 

 

 

Сообщение 1:

 

 

 

 

 

 

Массив передачи/приема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из 7 элементов USINT в соответствии с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

A2

A3

A4

 

A5

 

A6

A7

 

 

 

настраиваемым размером MTU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сообщение 2:

 

 

 

 

 

 

 

Большие сегменты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C1

A1

 

A2

A3

A4

 

A5

A6

 

 

 

 

 

 

B1

 

B2

 

 

 

 

 

 

 

 

для цикла шины 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A7

-

-

-

-

 

-

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 2

 

 

 

 

 

Сообщение 3:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C2

B1

 

B2

-

-

 

-

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 3

 

D1

D2

D3

 

D4

 

D5

 

D6

 

D7

D8

D9

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C3

D1

 

D2

D3

D4

 

D5

D6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Больше нет данных для передачи

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D7

D8

 

D9

-

-

 

-

-

 

 

 

 

 

 

для цикла шины 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

-

 

-

 

...

 

 

 

C0

-

-

-

-

 

-

-

 

 

 

 

 

 

 

 

 

для цикла шины 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 56: Массив передачи/приема (большие сегменты)

Прежде всего сообщения необходимо разделить на сегменты. Возможность формировать большие сегменты означает, что сообщения разделяются на меньшее количество сегментов; это приводит к созданию меньшего количества управляющих байтов.

Использование больших сегментов → Макс. длина сегмента = 63 байта

Сообщение 1 (7 байтов)

Первый сегмент = Управляющий байт + 7 байтов данных

Сообщение 2 (2 байта)

Первый сегмент = Управляющий байт + 2 байта данных

Сообщение 3 (9 байтов)

Первый сегмент = Управляющий байт + 9 байтов данных

Больше нет сообщений

Управляющий байт C0

Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства

229

Модули мобильной системы X90

Для каждого сегмента должен быть создан уникальный управляющий байт. Кроме того, для сохранения связи в дежурном режиме генерируется управляющий байт C0.

C1 (управляющий байт 1)

 

 

C2 (управляющий байт 2)

 

 

C3 (управляющий байт 3)

 

 

– SegmentLength / длина сегмента

=

7

– SegmentLength / длина сегмента

=

2

– SegmentLength / длина сегмента

=

9

(7)

 

 

(2)

 

 

(9)

 

 

– nextCBPos / позиция след.

=

0

– nextCBPos / позиция след. управ-

=

0

– nextCBPos / позиция след. управ-

=

0

управляющего байта (0)

 

 

ляющего байта (0)

 

 

ляющего байта (0)

 

 

– MessageEndBit / признак конца

=

128

– MessageEndBit / признак конца

=

128

– MessageEndBit / признак конца

=

128

сообщения (1)

 

 

сообщения (1)

 

 

сообщения (1)

 

 

Управляющий байт

Σ

135

Управляющий байт

Σ

130

Управляющий байт

Σ

137

Таблица 25: Определение управляющих байтов FlatStream для примера с большими сегментами

230

Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства

Модули мобильной системы X90

Большие сегменты и мультисегментные MTU

Пример

Три автономных сообщения (7 байтов, 2 байта и 9 байтов) передаются с использованием MTU размером 7 байтов. Конфигурация позволяет передавать большие сегменты, а также мультисегментные MTU.

 

 

 

 

Сообщение 1:

 

 

 

 

 

 

Массив передачи/приема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из 7 элементов USINT в соответствии с

 

 

 

 

A1

A2

A3

 

A4

 

A5

A6

A7

 

 

 

 

настраиваемым размером MTU

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обе опции

 

 

 

 

 

 

 

Сообщение 2:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C1

A1

A2

A3

A4

A5

A6

 

 

 

 

 

B1

 

B2

 

 

 

 

 

 

для цикла шины 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A7

C2

B1

B2

C3

D1

D2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 2

 

 

 

 

Сообщение 3:

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D3

D4

D5

D6

D7

D8

D9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 3

 

D1

D2

D3

D4

D5

 

D6

D7

D8

 

D9

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C0

-

-

-

-

-

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для цикла шины 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Больше нет данных для передачи

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C0

-

-

-

-

-

-

 

 

 

 

 

для цикла шины 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

-

 

 

- ...

 

 

 

 

 

C0

-

-

-

-

-

-

 

 

 

 

 

 

 

 

 

 

для цикла шины 6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 57: Массив передачи/приема (большие сегменты и мультисегментные MTU)

Прежде всего сообщения необходимо разделить на сегменты. Если последний сегмент сообщения заполняет MTU не полностью, его можно использовать для других данных в потоке данных. Бит nextCBPos должен устанавливаться во всех случаях, когда управляющему байту сопутствует сегмент с полезными данными.

Возможность формировать большие сегменты означает, что сообщения разделяются на меньшее количество сегментов; это приводит к созданию меньшего количества управляющих байтов. Управляющие байты создаются таким же образом, как при использовании опции «Большие сегменты».

Использование больших сегментов → Макс. длина сегмента = 63 байта

Сообщение 1 (7 байтов)

Первый сегмент = Управляющий байт + 7 байтов данных

Сообщение 2 (2 байта)

Первый сегмент = Управляющий байт + 2 байта данных

Сообщение 3 (9 байтов)

Первый сегмент = Управляющий байт + 9 байтов данных

Больше нет сообщений

Управляющий байт C0

Для каждого сегмента должен быть создан уникальный управляющий байт. Кроме того, для сохранения связи в дежурном режиме генерируется управляющий байт C0.

C1 (управляющий байт 1)

 

 

C2 (управляющий байт 2)

 

 

C3 (управляющий байт 3)

 

 

– SegmentLength / длина сегмента

=

7

– SegmentLength / длина сегмента

=

2

– SegmentLength / длина сегмента

=

9

(7)

 

 

(2)

 

 

(9)

 

 

– nextCBPos / позиция след.

=

0

– nextCBPos / позиция след. управ-

=

0

– nextCBPos / позиция след. управ-

=

0

управляющего байта (0)

 

 

ляющего байта (0)

 

 

ляющего байта (0)

 

 

– MessageEndBit / признак конца

=

128

– MessageEndBit / признак конца

=

128

– MessageEndBit / признак конца

=

128

сообщения (1)

 

 

сообщения (1)

 

 

сообщения (1)

 

 

Управляющий байт

Σ

135

Управляющий байт

Σ

130

Управляющий байт

Σ

137

Таблица 26: Принцип формирования управляющих байтов FlatStream для примера с большими сегментами и мультисегментными MTU

Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства

231

Соседние файлы в папке А2000 минск