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

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

Работа FlatStream

При использовании FlatStream чрезвычайно важно направление связи. Для отправки данных на модуль (выходное направление) используются байты Tx. Для приема данных от модуля (входное направление) используются байты Rx.

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

Формат входных и выходных байтов

Имя:

«Format of Flatstream» (Формат Flatstream) в Automation Studio

Для некоторых модулей эта функция задает способ передачи входных и выходных байтов (Tx или Rx) в FlatStream.

Пакет: передается массив данных.

Побайтово: данные передаются побайтово.

Передача полезных данных и управляющих байтов

Имя: TxByte1–TxByteN RxByte1–RxByteN

(Значение N зависит от используемой модели контроллера шины.)

Байты Tx и Rx ‒ это циклические регистры, которые используются для передачи полезных данных и необходимых управляющих байтов. Количество активных байтов Tx и Rx берется из конфигурационных реги-

стров "OutputMTU" и "InputMTU" соответственно.

Для программы пользователя доступны только байты Tx и Rx на контроллере. Соответствующие дубликаты, находящиеся в модуле, недоступны для пользователя. По этой причине имена регистров заданы с точки зрения контроллера.

T — Transmit («Передача») → Контроллер передает данные в модуль.

R — Receive («Получение») → Контроллер получает данные из модуля.

Тип данных

Значения

USINT

От 0 до 255

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

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

Описание битов управляющего байта

Бит

Имя

Значение

Описание

0–5

SegmentLength

0–63

Размер последующего сегмента в байтах (по умолчанию: макс. раз-

 

 

 

мер MTU - 1)

6

nextCBPos

0

Следующий управляющий байт в начале следующего MTU

 

 

1

Следующий управляющий байт непосредственно после окончания

 

 

 

текущего сегмента

7

MessageEndBit (признак конца сообщения)

0

Сообщение продолжается после следующего сегмента

 

 

1

Сообщение заканчивается в следующем сегменте

SegmentLength

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

Информация:

Управляющий байт не включен в длину сегмента. При определении длины сегмента учитываются только полезные данные.

212

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

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

nextCBPos

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

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

MessageEndBit (признак конца сообщения)

MessageEndBit установлен, если следующий сегмент завершает сообщение. Это означает, что сообщение было передано полностью и готово для дальнейшей обработки.

Информация:

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

Формула FlatStream для вычисления длины сообщения:

Сообщение [байт] = длина сегментов (все CB без ME) + длина сегмента первого CB с ME

CB

Управляющий

 

 

байт

 

ME

MessageEndBit

 

 

(признак конца

 

 

сообщения)

Состояние связи на контроллере

 

 

Имя: OutputSequence

Регистр OutputSequence содержит информацию о состоянии связи на контроллере. Он записывается контроллером и считывается модулем.

Тип данных

 

Значения

 

 

USINT

 

См. описание битов регистра.

 

 

Описание битов регистра:

 

 

 

 

 

 

Бит

Имя

Значение

Описание

0–2

OutputSequenceCounter

0–7

Счетчик исходящих последовательностей

3

OutputSyncBit

0

Передача исходящих сообщений отключена

 

 

 

1

Передача исходящих сообщений включена

4–6

InputSequenceAck

0–7

Соответствует InputSequenceCounter

7

InputSyncAck

0

Прием данных невозможен (отключен)

 

 

 

1

Прием данных возможен (включен)

OutputSequenceCounter

OutputSequenceCounter − это непрерывный счетчик последовательностей, выданных контроллером. Контроллер использует счетчик OutputSequenceCounter для выдачи модулю указания на прием последовательности (при этом выходное направление должно быть синхронизировано).

OutputSyncBit

Контроллер использует бит OutputSyncBit для попытки синхронизировать канал вывода. InputSequenceAck

Регистр InputSequenceAck используется для квитирования. Его значение соответствует значению счетчика InputSequenceCounter, если контроллер успешно принял последовательность.

InputSyncAck

Бит InputSyncAck подтверждает синхронизацию канала ввода для модуля. Он указывает, что контроллер готов к приему данных.

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

213

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

Состояние связи на модуле

Имя: InputSequence

Регистр InputSequence содержит информацию о состоянии связи на модуле. Он записывается модулем и доступен контроллеру только для чтения.

Тип данных

 

Значения

 

 

USINT

 

См. описание битов регистра.

 

 

Описание битов регистра:

 

 

 

 

 

 

Бит

Имя

Значение

Описание

0–2

InputSequenceCounter

0–7

Счетчик входящих последовательностей

3

InputSyncBit

0

Не готов (отключен)

 

 

 

1

Готов (включен)

4–6

OutputSequenceAck

0–7

Соответствует OutputSequenceCounter

7

OutputSyncAck

0

Не готов (отключен)

 

 

 

1

Готов (включен)

InputSequenceCounter

InputSequenceCounter − это непрерывный счетчик последовательностей, отправленных модулем. Модуль использует счетчик InputSequenceCounter для выдачи контроллеру указания на прием последовательности (при этом входное направление должно быть синхронизировано).

InputSyncBit

Модуль использует бит InputSyncBit для попытки синхронизировать входной канал. OutputSequenceAck

Регистр OutputSequenceAck используется для квитирования. Его значение соответствует значению счетчика OutputSequenceCounter, если модуль успешно принял последовательность.

OutputSyncAck

Бит OutputSyncAck подтверждает синхронизацию канала вывода с контроллером. Это указывает, что модуль готов к приему данных.

214

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

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

Связь между OutputSequence и InputSequence

 

Выходная последовательность

 

 

Входная последовательность

Состояние связи на контроллере

 

 

Состояние связи на модуле

0–2

OutputSequenceCounter

 

0–2

InputSequenceCounter

3

OutputSyncBit

Перекрестное

3

InputSyncBit

 

4–6

InputSequenceAck

квитирование

4–6

OutputSequenceAck

 

 

 

 

7

InputSyncAck

 

7

OutputSyncAck

Рисунок 45: Связь между OutputSequence и InputSequence

Регистры "OutputSequence" и "InputSequence" логически состоят из двух полубайтов. Младшая часть сигнализирует станции-партнеру, что необходимо открыть канал или принять данные. Старшая часть должна подтвердить выполнение запрошенного действия.

SyncBit и SyncAck

Если SyncBit и SyncAck установлены в одном направлении связи, то канал считается «синхронизированным», т. е. можно передавать сообщения в этом направлении. Необходимо циклически проверять бит состояния станции-партнера. Если SyncAck был сброшен, то необходимо изменить значение SyncBit на этой станции. Перед тем как можно будет передавать новые данные, канал необходимо синхронизировать повторно.

SequenceCounter и SequenceAck

Партнеры по связи циклически проверяют изменение младшего полубайта на станции-партнере. Когда один из партнеров по связи заканчивает запись новой последовательности в MTU, значение счетчика SequenceCounter увеличивается. Затем текущая последовательность передается на приемник, который подтверждает его получение с помощью SequenceAck. Таким образом выполняется «квитирование».

Информация:

При прерывании связи сегменты незавершенного сообщения отбрасываются. Все сообщения, которые были переданы полностью, обрабатываются.

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

215

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