Функция выполняет прием данных через последовательный интерфейс (настройка Интерфейс).
Когда функция фиксирует начало передачи данных (state = 1
), то первые полученные байты копируются в RXD буфер, начиная с индекса 0
.
Если количество входящих данных больше 64 байт, то процесс получения будет выполнен за несколько тактов (state = 2
), при этом оставшиеся данные будут дописываться в RXD буфер начиная с индекса последнего индекса, записанного на предыдущем цикле.
Прием данных за несколько циклов имеет ряд важных особенностей и подробно описан в статье о RXD и TXD буферах.
Функция зафиксирует конец приема данных (state = 3
), если после приема последнего байта истек таймаут приема (настройка Таймаут). Следующие данные будут считаться новыми и будут записаны в RXD буфер с индекса 0.
Для работы функции, в конфигурации устройства должен быть настроен соответствующий интерфейс:
Конфигурация > RS-232/RS-485 > Устройство X > Сomplex Events (асинхронный режим).
В меню функций | На схеме |
---|---|
![]() |
![]() |
Название | Тип значения | Описание |
---|---|---|
enabled |
bool | Если True, функция принимает входящие данные от интерфейса |
reset |
bool | Если True, функция очистит RXD буфер (все байты будут установлены в х00 ) и следующие данные будут записываться начиная с индекса 0 . |
Название | Тип значения | Описание |
---|---|---|
state |
int32 | Состояние приемника: 0 – прием отключен; 1 – ожидание данных; 2 – прием данных; 3 – данные приняты; -1 – интерфейс недоступен (не настроен). |
size |
int32 | Состояние передатчика: 0 – нет активности; 1 – отправка данных; -1 – интерфейс недоступен (не настроен). |
offset |
int32 | Количество потерянных данных из-за переполнения RXD буфера (если принято данных больше, чем размер буфера). При переполнении удаляются более старые данные (которые пришли первыми). |
Название | Описание |
---|---|
Интерфейс | Цифровой интерфейс, которым управляет функция. Если выбранный интерфейс не настроен, то функция сформирует ошибку state = -1 . |
Таймаут | Время после приема последнего байта, по истечение которого считается, что прием данных завершен (state = 3 ).Следующие данные будут считаться новыми и будут записаны в RXD буфер с индекса 0 . |