RS - Асинхронный обмен
![]() |
![]() |
|
| в палитре | на схеме |
Описание
Блок реализует возможность двустороннего обмена по протоколу RS-232 и RS-485. Передаваемые и принимаемые пакеты данных могут иметь произвольный размер, а также, в зависимости от настроек блока, данные могут быть интерпретированы как целые или вещественные числа различных типов.
Отправка и приём пакетов осуществляются независимо друг от друга в асинхронном режиме. Отправка пакетов ведётся с шагом интегрирования системы, либо реже - с настраиваемым шагом работы блока. Приём пакетов фиксированно ведётся на каждом шаге интегрирования системы.
Байты пакета могут передаваться в/из блока в виде вектора (на один порт), либо в скалярном виде на множественные порты - по одному элементу пакета на каждый порт. Поддерживается настраиваемая перестановка порядка байт в вещественных и целых числах для передачи информации в нужном формате. По умолчанию посылка значений в пакетах осуществляется в формате LittleEndian (начиная с младшего байта).
Блок позволяет осуществлять добавку константного префикса к каждому отправляемому пакету (заголовок пакета) и фильтровать принимаемые пакеты по наличию указанного заголовка.
Входные порты
inport_<i> – входные порты блока. Количество портов формируется динамически в зависимости от настроек блока. При включенном свойстве WriteToSinglePort все данные будут приниматься на один входной порт. Размерность входного вектора будет соответствовать количеству выбранных элементов в отправляемом пакете (свойство WritePackFormat). Если свойство WriteToSinglePort не активно, количество портов будет соответствовать количеству выбранных элементов в свойстве WritePackFormat. Каждый элемент массива или порт в порядке своей нумерации добавляет в отправляемый пакет фиксированный набор байт (в зависимости от размера соответствующего ему элемента).
Выходные порты
outport_<i> – выходные порты блока. Количество портов формируется динамически в зависимости от настроек блока. При включенном свойстве ReadToSinglePort все данные будут выводиться на один выходной порт. Размерность выходного вектора будет соответствовать количеству выбранных элементов в принимаемом пакете (свойство ReadPackFormat). Если свойство ReadToSinglePort не активно, количество портов будет соответствовать количеству выбранных элементов в свойстве ReadPackFormat. Каждому элементу массива или порту в порядке нумерации будет сопоставлен фиксированный набор байт принимаемого пакета (в зависимости от размера соответствующего элемента).
Общие свойства блока
- Формат отправляемого пакета (WritePackFormat)
Свойство позволяет назначить размер отправляемого пакета, а также способ интерпретации входящих значений (по линиям связи на вход блока подаются 8-байтовые вещественные числа). Поддерживаются следующие форматы:
- Byte;
- Word (2-х байтовое беззнаковое целое);
- Long (4-х байтовое беззнаковое целое);
- Integer (4-х байтовое знаковое целое);
- Float (4-х байтовое вещественное число с плавающей точкой);
- Double (8-х байтовое вещественное число с плавающей точкой).
- Количество байт в отправляемом пакете (WriteMsgLength)
Итоговый размер отправляемого пакета в байтах. Автоматически вычисляемое информационное свойство.
- Формат принимаемого пакета (ReadPackFormat)
Свойство позволяет назначить ожидаемый размер принимаемого пакета, а также способ интерпретации составляющих его байт. Поддерживаемые форматы аналогичны описанным для свойства WritePackFormat. Количество выходных портов, либо размерность выходного вектора при использовании режима с одним портом вычисляется автоматически. В случае, если количество байт, пришедших в буфер порта, будет меньше ожидаемого, пакет будет проигнорирован и не будет передан на выход блока. В случае, если количество окажется больше ожидаемого, лишние байты будут проигнорированы.
- Количество байт в принимаемом пакете (ReadMsgLength)
Итоговый ожидаемый размер входящего пакета в байтах. Автоматически вычисляемое информационное свойство.
- Записывать данные на 1 порт (WriteToSinglePort)
Свойство определяет способ передачи в блок данных для отправляемых пакетов. При включенном свойстве WriteToSinglePort все данные будут приниматься на один входной порт. Размерность входного вектора будет соответствовать количеству выбранных элементов в отправляемом пакете (свойство WritePackFormat). Если свойство WriteToSinglePort не активно, количество портов будет соответствовать количеству выбранных элементов в свойстве WritePackFormat.
- Читать данные на 1 порт (ReadToSinglePort)
Свойство определяет способ приёма данных из входящих пакетов. При включенном свойстве ReadToSinglePort все данные будут выводиться на один выходной порт. Размерность выходного вектора будет соответствовать количеству выбранных элементов в принимаемом пакете (свойство ReadPackFormat). Если свойство ReadToSinglePort не активно, количество портов будет соответствовать количеству выбранных элементов в свойстве ReadPackFormat.
- Шаг обмена данными [сек] (TimeStep)
Шаг отправки пакетов. Вычисляется относительно расчётного времени системы SimInTech. Позволяет отправлять пакеты с шагом, большим шага интегрирования системы. Приём пакетов фиксированно ведётся на каждом шаге интегрирования системы.
- Формат Long (4-х байтные целые беззнаковые) (LongOrder)
Для возможности работы с системами, в которых принят другой порядок следования байт, блок предоставляет возможность перестановки байт местами при записи и чтении. Предоставляемые варианты: AB CD, CD AB, BA DC, DC BA.
- Формат Integer (4-х байтные целые знаковые) (IntegerOrder)
Предоставляемые варианты: AB CD, CD AB, BA DC, DC BA.
- Формат Float (4-х байтные вещественные) (FloatOrder)
Предоставляемые варианты: AB CD, CD AB, BA DC, DC BA.
- Формат Double (8 байтные вещественные) (DoubleOrder)
Предоставляемые варианты: AB CD EF GH, GH EF CD AB, BA DC FE HG, HG FE DC BA.
- Добавлять префикс к отправляемым пакетам (AddPrefixToWritePack)
Функция включения добавки константного префикса к каждому отправляемому пакету (заголовок пакета).
- Префикс передачи данных (OutPrefix)
Непосредственно значения заголовка для отправляемых пакетов.
- Искать префикс в принимаемых пакетах (FindPrefixInReadPack)
Функция включения поиска заданного префикса (заголовка пакета) во входящих пакетах. Если входящий пакет содержит заданный заголовок, он передаётся на выходные порты блока (без префикса), если заданный префикс не находится - пакет игнорируется. Если данная функция выключена, пакет выводится на выходные порты с первого байта;
- Префикс приёма данных (InPrefix)
Непосредственно значения заголовка для принимаемых пакетов.
- Вывод отладочной информации (DebugInfo)
Опция включения отладочной выдачи значений байт, приходящих в порт, независимо от того выводятся они далее на выходные порты или нет.
Параметры RS подключения
- Номер COM-порта (PortNumber)
- Скорость передачи данных, [бод] (Rate)
- Количество бит данных в пакете (DataBits)
- Количество стоп-бит (StopBits)
- Контроль чётности (Parity)

