Модули мобильной системы X90
Для настройки FlatStream используется пять регистров. Конфигурация по умолчанию позволяет относительно легко передавать небольшие объемы данных.
Информация:
Контроллер связывается непосредственно с полевым устройством посредством регистров OutputSequence и InputSequence, а также активированных байтов Tx и Rx. Поэтому пользователь должен обладать достаточными знаниями о протоколе связи, используемом на полевом устройстве.
Чтобы использовать FlatStream, необходимо сначала внести изменения в управляющую программу. Время цикла подпрограмм FlatStream должно быть установлено кратным циклу шины. Другие подпрограммы должны быть реализованы в Классе задач #1 для обеспечения согласованности данных.
Далее требуется по меньшей мере настроить регистры InputMTU и OutputMTU. Все другие регистры заполняются значениями по умолчанию в начале работы и могут использоваться сразу. Эти регистры используются для дополнительных функций, например для передачи данных в более компактном виде или для повышения эффективности общей процедуры.
Регистры ускоренной отправки расширяют функциональные возможности протокола FlatStream. Эта функция полезна для существенного увеличения скорости передачи данных FlatStream, но она также требует затратить довольно много дополнительных усилий при создании управляющей программы.
Имя: OutputMTU InputMTU
Эти регистры определяют число разрешенных байт Tx или Rx, т. е. максимальный размер последовательности. Пользователь должен учитывать, что большее число доступных байт также означает более высокую нагрузку на шину.
Информация:
В остальной части этой документации имена OutputMTU и InputMTU не относятся к описанным здесь регистрам. Вместо этого они используются как синонимы для текущих разрешенных байтов Tx или Rx.
Тип данных |
Значения |
USINT |
См. обзор регистров, относящихся к отдельным модулям (теоретически: 3–27). |
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |
211 |
Модули мобильной системы X90
При использовании 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
|
Выходная последовательность |
|
|
Входная последовательность |
Состояние связи на контроллере |
|
|
Состояние связи на модуле |
|
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 |