<< 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 |
Входы и выходы ФБ:
Название |
Тип |
Назначение |
Входы |
||
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. Установить связи с параметрами проекта или установить константы на входах ФБ.
Смотрите также