COMPortByteSync

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа с COM >

COMPortByteSync

Функциональный блок COMPortByteSync служит для работы с COM-портом устройства (с данными типа ARRAY [*] of BYTE), на котором установлена среда исполнения. Данный ФБ обеспечивает синхронную отправку сообщения и ожидание получения ответа.

Важно! Для возможности работы c ФБ COMPortByteSync  в исполнительную систему должна входить опция MSRT4D-COMCreate. Данная опция включена в базовый функционал лицензий Standard, Professional и Enterprise.

Важно! Для корректной работы функционального блока необходимо добавить протокол Универсальный протокол COM порта. При работе функциональный блок будет использовать настройки (скорость, четность и др), указанные в протоколе.

Находится в библиотеке BaseObjects.

Вид в дереве

Вид в редакторе FBD

COMPortByteSync

COMPortByteSync_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

Timeout

DINT

Задаётся время ожидания ответа. По умолчанию установлено значение 1000. Если пользователю не нужен ответ, то необходимо установить значение 0.

Например, если ожидается получить ответ, состоящий из 10 байт, то значение входа MaxResponseCount также должно быть установлено на 10. Если установить значение входа MaxResponseCount больше, чем ожидаемый размер ответа, то в противном случае система будет продолжать ожидать получения дополнительных символов до завершения времени ожидания, заданного на входе Timeout.

Count

INT

Задается количество байт, которое необходимо передать.

Message

ARRAY [*] of BYTE

Задается запрос.

MaxResponseCount

INT

Задается максимальное количество байт в ответе. По умолчанию установлено значение 0.

Выходы

Response

ARRAY [*] of BYTE

Выдается ответ.

ResponseCount

INT

Показывается фактическое количество полученных байт.

StatusCode

DINT

Выдается код ответа:

-5 — ответ получен по истечению Timeout;

0 — ответ получен по достижению количества символов в ответе, заданном в MaxResponseCount.

Важно! COMPortByteSync допустимо использовать только в программе, расположенной в протоколе, поэтому номер порта не задается (используется всегда порт протокола, в котором выполняется программа).

Отправка запроса будет производится с периодом, указанным в свойствах протокола в категории Задача.

У данного ФБ отсутсвует вход SEND, имеющийся у ФБ COMPortByte, т.к. ФБ COMPortByteSync выполняется синхронно, т. е. отслеживания выполнения не требуется. В случае если отправку производить не нужно, то стандартному входу En следует присвоить значение FALSE. В данной ситуации ФБ не выполняется. Если необходимо только принимать данные, без передачи, то необходимо установить стандартному входу En значение TRUE, а входу Count присвоить 0.

Важно! Для возможности использования ФБ COMPortByteSync в исполнительную систему должна входить опция PLC_OPTION_FB_COMPORT. Информацию о получении списка опций смотрите в соответствующем разделе.

Порядок работы

1. Добавить в узел какой-либо протокол, например, Modbus RTU.

2. В настройках протокола установить номер COM-порта.

3. Добавить в протокол в какую-либо Программу.

4. Добавить в программу нужные ФБ.

5. Установить связи с параметрами проекта или установить константы на входах ФБ.

COMPortByteSync_2

Смотрите также

Универсальный протокол COM порта