Модули мобильной системы X90
Полоса частот 1–32
144 |
"FrequencyBand01" |
: |
: |
237 |
"FrequencyBand32" |
Модуль позволяет использовать Flatstream для выгрузки буфера.
Буферы необработанных данных (необработанный сигнал и FFT) передаются по запросу (буфер Flatstream в направлении Tx) из модуля через буфер Flatstream (направление Rx) только в том случае, если буферы были ранее заблокированы в модуле посредством установки битов RequestBufferLock01 = 1 и BufferLockValid01 = 1. Важно отметить, что модуль обновляет регистры буфера FlatStream в каждом цикле шины X2X. Как только передача завершена, контроллер должен восстановить данные буфера из потока.
Для выгрузки буферов используются следующие регистры:
"BufferInputSequence01" на странице 214 "BufferRxByte01-05" на странице 212 "BufferOutputSequence01" на странице 213 "BufferTxByte01-04" на странице 212
Из-за этого размер "InputMTU" для буфера FlatStream равен 5 байтам, а "OutputMTU" — 4 байтам.
Перед выгрузкой буфера из модуля буферы на модуле должны быть заблокированы установкой бита RequestBufferLock01 = 1. Выгрузку можно начинать, как только буферы будут заблокированы установкой бита BufferLockValid01 = 1.
Буфер скорости будет содержать значения, только если установлен бит EnableVelocityCalculation для соответствующего канала; в противном случае его значение будет равно 0. Бит EnableVelocityCalculation настраивается в регистре "SensorConfig" на странице 162.
Сначала буфер должен быть запрошен из модуля через буфер FlatStream (направление Tx). Значение:
■BufferTxByte01: Значение 0x83 (конец кадра и 3 байта действительны)
■BufferTxByte02: Запрошенный буфер из модуля
■BufferTxByte03: Старший байт количества считываемых значений (на 4-байтное значение)
■BufferTxByte04: Младший байт количества считываемых значений (на 4-байтное значение)
Далее последовательность увеличивается на 1. Как только модуль квитирует последовательность, необходимо обнулить количество действительных байтов в BufferTxByte, поскольку в противном случае модуль интерпретирует это значение как новый запрос. Модуль может временно хранить до 2 последовательных запросов.
Как только модуль примет запрос, он начнет потоковую передачу требуемого числа значений из указанного буфера через буфер FlatStream (направление Rx). Значения всегда передаются в формате с фиксированной точкой 16.16 (1/65536), старший байт передается первым. Первым передается коэффициент масштабирования, после чего все другие значения умножаются на этот коэффициент. В случае с буферами осциллограммы первое значение, передаваемое после коэффициента масштабирования, всегда является самым старым. В случае с буферами FFT первое значение, передаваемое после коэффициента масштабирования, всегда соответствует 0 Гц. Буферы FFT действительны только в диапазоне от минимальной до максимальной частоты, заданных для соответствующего сигнала (необработанного или огибающей) и соответствующего канала.
Для получения дополнительной информации о временных интервалах и диапазонах частот отдельных зна-
чений см. разделы о регистрах "MinFrequencyRaw" на странице 195 или "MinFrequencyEnvelope" на стра-
нице 194.
Значение бита RequestBufferLock01 должно равняться 1 на протяжении всего процесса выгрузки. Как только запрошенные буферы будут выгружены из модуля, блокировку можно сбросить. Затем буферы в модуле снова заполняются новыми значениями. По прошествии определенного времени их можно снова заблокировать и выгрузить (см. раздел о регистре "Управление" на странице 161).
206 |
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |
|
|
|
|
|
Модули мобильной системы X90 |
||
|
|
|
|
|
|
|
|
Количество буферов (дес.) |
|
|
Максимальное |
||||
Канал 1 |
Канал 2 |
Канал 3 |
Канал 4 |
Буфер |
|
количество значений |
|
|
|
(1 значение = 4 байта) |
|||||
|
|
|
|
|
|
||
9 |
11 |
13 |
15 |
Необработанный сигнал |
|
81931) |
|
(значение фильтра: "MaxFrequencyRaw" на странице 192) |
|||||||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Огибающая сигнала |
|
|
|
25 |
27 |
29 |
31 |
(значение фильтра: "MinFrequencyEnvelope" на |
странице |
8193 |
|
|
|
|
|
194) |
|
|
|
66 |
70 |
74 |
78 |
Амплитудный спектр FFT, необработанный сигнал скорости |
4097 |
||
(значение фильтра: "MaxFrequencyRaw" на странице 192) |
|||||||
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Амплитудный спектр FFT, необработанный |
сигнал |
|
|
67 |
71 |
75 |
79 |
ускорения |
|
4097 |
|
|
|
|
|
(значение фильтра: "MaxFrequencyRaw" на странице 192) |
|
||
|
|
|
|
Амплитудный спектр FFT, огибающая сигнала скорости |
|
||
82 |
86 |
90 |
94 |
(значение фильтра: "MinFrequencyEnvelope" на |
странице |
4097 |
|
|
|
|
|
194) |
|
|
|
|
|
|
|
Амплитудный спектр FFT, огибающая сигнала ускорения |
|
||
83 |
87 |
91 |
95 |
(значение фильтра: "MinFrequencyEnvelope" на |
странице |
4097 |
|
|
|
|
|
194) |
|
|
|
1)Первое значение в буфере — коэффициент масштабирования.
В специальных приложениях может понадобиться выгрузка больших буферов.
При помощи бита 14 в регистре "SensorConfig" на странице 162 можно настроить размер буфера равным 8192 или 65535 значениям. Это позволяет считывать из модуля в буфер 65535 значений необработанного сигнала и огибающей сигнала (номера буфера 9, 11, 13, 15, 25, 27, 29 и 31), включая коэффициент масштабирования. Однако буферы FFT содержат 4097 значений вместе с коэффициентом масштабирования и соответствуют последним 8192 из 65535 значений необработанного сигнала или огибающей сигнала.
После блокировки буфера для выгрузки (RequestBufferLock01) перед следующей блокировкой должен заполниться самый большой буфер. Если будет предпринята попытка заблокировать буфер до истечения этого времени, она будет отвергнута модулем до заполнения буфера.
Задержку ускоренной отправки для буфера FlatStream можно настроить асинхронно в рамках настройки входов/выходов модуля (BufferForwardDelay01).
Ускоренная отправка параметров и буферов Flatstream может настраиваться асинхронно (см. регистры
"ParameterForward01" на странице 233 и "BufferForward01" на странице 233). Однако их следует настраи-
вать только после настройки задержки ускоренной отправки для соответствующего интерфейса FlatStream.
При использовании ЦП SG4 настроить ForwardDelay для параметра FlatStream вручную невозможно. Начиная с версии Automation Runtime J3.09 и J4.01, это значение настраивается автоматически, а в более ранних версиях оно равно 0.
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |
207 |
Модули мобильной системы X90 |
|
|
|
||
5.4.1.5.11.4 Связь FlatStream |
|
|
|
||
Введение |
|
|
|
|
|
B&R предлагает дополнительный способ связи для некоторых модулей. Интерфейс Flatstream был раз- |
|||||
работан для шин X2X и POWERLINK и позволяет приспособить передачу данных к индивидуальным тре- |
|||||
бованиям. Хотя этот метод не соответствует в полной мере требованиям к передаче данных в реальном |
|||||
времени, он все же позволяет передавать обрабатываемые данные более эффективно, чем стандартный |
|||||
циклический опрос. |
|
|
|
|
|
|
|
|
Язык |
|
|
|
X2X |
|
полевого устройства |
|
|
Синхронный вызов |
|
|
|
|
|
с использованием табл. |
|
|
|
|
|
распределения вх/вых |
|
|
|
|
|
Контроллер B&R |
Синхронный вызов |
Модуль B&R |
Синхронная |
Полевое устройство B&R |
|
ПЛК или |
|||||
кэшированных значений |
Кэшированные значения |
передача |
|||
|
|||||
контроллер шины |
|
|
|
|
|
Асинхронный вызов |
|
|
|
|
|
с использованием |
|
|
|
|
|
функций библиотеки |
|
|
|
|
|
Контроллер B&R |
Асинхронный вызов |
Модуль B&R |
Синхронная |
Полевое устройство B&R |
|
ПЛК или |
|||||
кэшированных значений |
Кэшированные значения |
передача |
|||
контроллер шины |
|
||||
|
|
|
|
||
Flatstream |
|
|
|
|
|
Контроллер B&R |
Команда устройства, |
Модуль B&R |
Команда устройства |
Полевое устройство B&R |
|
ПЛК или |
|||||
совместимая с X2X |
В качестве моста |
||||
контроллер шины |
|
|
|
||
|
|
|
|
||
Рисунок 43: Три типа связи
FlatStream расширяет возможности синхронных и асинхронных запросов данных. В связи FlatStream модуль выступает в роли моста. Он используется для передачи запросов от контроллера непосредственно на полевое устройство.
208 |
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |
Модули мобильной системы X90
Физические свойства полевой шины ограничивают объем данных, который может быть передан за один цикл шины. В связи FlatStream все сообщения рассматриваются как часть непрерывного потока данных. Длинные потоки данных должны быть разделены на несколько фрагментов, которые отсылаются один за другим. Чтобы понять, как приемник собирает эти фрагменты вместе для получения исходных данных, важно понимать разницу между сообщением, сегментом, последовательностью и максимальным блоком передачи данных (MTU).
Сообщение
Сообщение обозначает информацию, которой обмениваются две станции-партнера. Метод связи FlatStream не ограничивает длину сообщений. Тем не менее необходимо учитывать собственные ограничения модулей.
Сегмент (логическая часть сообщения):
Сегмент имеет конечный размер и может рассматриваться как раздел сообщения. Число сегментов в сообщении является произвольным. Для того чтобы получатель мог правильно собрать переданные сегменты, каждому сегменту предшествует байт с дополнительной информацией. Этот контрольный байт содержит такую информацию, как длина сегмента и признак конца сообщения. Это позволяет принимающей станции правильно интерпретировать входящий поток данных.
Последовательность (физическая организация сегментов):
Максимальный размер последовательности соответствует количеству допустимых байтов Rx или Tx (далее
– MTU). Передающая станция разбивает массив передачи на допустимые последовательности. Затем эти последовательности одна за другой вписываются в MTU и передаются на принимающую станцию, где они снова собираются вместе. Приемник сохраняет входящие последовательности в массив приема, получая образ потока данных.
В FlatStream подсчитывается число отправленных последовательностей. Успешно переданные последовательности должны быть квитированы принимающей станцией, чтобы обеспечить целостность передачи данных.
MTU (максимальный блок передачи данных) — физическая передача:
MTU зависит от числа активных регистров USINT, используемых при передаче Flatstream. Эти регистры могут принимать по меньшей мере одну последовательность и передавать ее на принимающую станцию. Для каждого направления связи определяется отдельный размер MTU. OutputMTU определяет число Txбайтов FlatStream, а InputMTU указывает количество Rx-байтов FlatStream. MTU циклически передаются по шине X2X. Каждый дополнительный активный регистр USINT увеличивает нагрузку на шину.
Свойства
Сообщения FlatStream не передаются циклически или в режиме реального времени. Для передачи отдельно взятого сообщения может потребоваться много циклов шины. Хотя передатчик и приемник циклически обмениваются регистрами Rx и Tx, для их дальнейшей обработки необходимо явное подтверждение по-
средством регистра InputSequence или OutputSequence.
Поведение в случае ошибки (краткий обзор)
Протокол для шин X2X и POWERLINK указывает, что при возникновении помехи должны сохраняться последние корректные значения. Обычно при традиционной связи (синхронные/асинхронные запросы данных) этот тип ошибки можно игнорировать.
Для обеспечения безошибочной связи с использованием FlatStream все последовательности, выданные приемником, должны быть квитированы. Если не используется ускоренная отправка данных, то последующая связь задерживается на время, пока помеха активна.
Если используется ускоренная отправка данных, принимающая станция принимает счетчик передачи данных, значение которого дважды увеличивается на единицу. Приемник останавливается, т. е. он больше не возвращает никакие подтверждения. Передающая станция использует SequenceAck, чтобы определить, что передача данных была ошибочной и все затронутые последовательности необходимо повторить.
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |
209 |
Модули мобильной системы X90
Требование
Перед использованием FlatStream соответствующее направление связи должно быть синхронизировано, т. е. оба партнера по связи должны циклически опрашивать счетчик последовательностей друг друга. Это позволяет увидеть, имеются ли новые данные, которые должны быть приняты.
Связь
Если партнер по связи хочет передать сообщение на партнерскую станцию, сначала необходимо создать массив передачи, соответствующий правилам FlatStream. Это позволяет очень эффективно организовать данные FlatStream без необходимости блокировать другие важные ресурсы.
ПЛК / контроллер шины |
|
Модуль |
|
||
|
|
|
Внутренний буфер |
Внутренний массив |
|
Массив передачи |
OutputMTU |
|
приема в модуле |
приема в модуле |
|
Тип данных: USINT |
Тип данных: USINT |
|
Тип данных: USINT |
Тип данных: USINT |
|
_data_01 |
Байты Tx |
Циклич. |
* Байты Rx |
_data_01 |
|
_data_02 |
Если используется |
Буфер передачи |
Если увеличивается счетчик |
_data_02 |
|
_data_03 |
_data_03 |
||||
OutputMTU: |
модуля циклически |
OutputSequence: |
|||
_data_04 |
|
получает данные |
|
_data_04 |
|
ЦП заполняет |
из OutputMTU |
Модуль добавляет содержимое |
|||
_data_05 |
OutputMTU |
по шине X2X |
буфера передачи во внутренний |
_data_05 |
|
указанной |
|
массив |
|||
. . . |
последовательностью |
|
Если это удалось: |
. . . |
|
из массива передачи |
|
||||
|
Значение InputSequenceAck |
||||
_data_xx |
|
|
приходит в соответствие |
_data_xx |
|
|
|
|
со значением счетчика передачи |
|
|
|
|
|
Внутренний буфер |
Внутренний массив |
|
Массив приема |
InputMTU |
|
передачи в модуле |
передачи в модуле |
|
Тип данных: USINT |
Тип данных: USINT |
|
Тип данных: USINT |
Тип данных: USINT |
|
_data_01 |
Байты Rx |
Циклич. |
* Байты Tx |
_data_01 |
|
_data_02 |
Если увеличивается |
InputMTU |
Если разрешено: |
_data_02 |
|
_data_03 |
_data_03 |
||||
счетчик |
циклически получает |
модуль заполняет внутренний |
|||
_data_04 |
InputSequence: |
данные из буфера |
буфер передачи |
_data_04 |
|
|
приема по шине X2X |
указанной последовательностью |
|||
_data_05 |
InputMTU необходимо |
|
из массива передачи |
_data_05 |
|
|
|
||||
. . . |
добавить в конец |
|
|
. . . |
|
массива приема |
|
Модуль увеличивает |
|||
_data_xx |
(увеличение InputSequenceAck |
|
счетчик InputSequence |
_data_xx |
|
для корректного завершения) |
|
|
|||
|
Рисунок 44: Связь FlatStream |
|
|||
Процедура
Сначала сообщение разбивается на допустимые сегменты длиной до 63 байтов, и создаются соответствующие управляющие байты. Управляющие байты добавляются к соответствующим сегментам, и формируется поток данных. Этот поток данных можно записать в массив передачи. Максимальный размер каждого элемента массива соответствует размеру допустимого MTU, так что один элемент соответствует одной последовательности.
Когда массив полностью создан, передатчик проверяет, разрешена ли перезапись MTU. Затем он копирует первый элемент массива или первую последовательность в байтовые регистры Tx. MTU передается на принимающую станцию по шине X2X и сохраняется в соответствующих байтовых регистрах Rx. Чтобы сигнализировать, что данные должны быть приняты приемником, передатчик увеличивает значение счетчика
SequenceCounter.
Если направление связи синхронизировано, партнерская станция обнаруживает прирост значения SequenceCounter. Текущая последовательность добавляется в массив приема и квитируется с помощью SequenceAck. Это квитирование сигнализирует передатчику, что MTU можно перезаписать.
Если передача данных успешна, данные в массиве приема будут полностью соответствовать данным в массиве передачи. В ходе передачи данных принимающая станция должна обнаруживать и обрабатывать входящие управляющие байты. Для каждого сообщения должен создаваться отдельный массив приема. Это позволяет приемнику немедленно начать дальнейшую обработку сообщений, как только они будут полностью переданы.
210 |
Мобильная система управления X90 Руководство пользователя V 1.20 - Перевод руководства |