PDA

Просмотр полной версии : Библиотека OwenCommunication (релиз версии 3.5.11.7)



Евгений Кислов
03.09.2019, 10:02
Добрый день. Мы представляем вашему вниманию библиотеку OwenCommunication.
Эта библиотека используется для обмена по протоколу Modbus и реализации нестандартных протоколов.
Она закрывает функционал доступных ранее библиотек (ComService, Modbus, ModbusSlave) и имеет расширенные возможности.
Библиотеку можно использовать в версиях CODESYS V3.5 SP11 Patch 5 и выше.
По сравнению со стандартными средствами конфигурирования CODESYS библиотека имеет следующие преимущества:


отсутствие ограничений (на число каналов мастера, регистров слэйва и т.д.);
расширенный функционал;
возможность управления обменом из кода (например, можно изменять настройки COM-порта из визуализации контроллера).


Библиотека включает в себя:


функциональные блоки управления интерфейсом (COM_Control, TCP_Client);
функциональные блоки для обмена по Modbus (MB_SerialRequest, MB_SerialSlave, MB_TcpRequest, MB_TcpSlave);
функциональные блоки для реализации нестандартных протоколов (UNM_SerialRequest, UNM_TcpRequest, UNM_UdpRequest);
функции и функциональные блоки конвертации данных (REAL_TO_WORD2, WORD2_TO_REAL и т.д.).


Возможности блоков Modbus:


MB_SerialRequest (Modbus Serial Master) - поддержка широковещательной рассылки (на адрес 0);
MB_TcpRequest (Modbus TCP Master) - поддержка режима RTU over TCP;
MB_SerialSlave - поддержка режима ASCII (блок автоматически определяет протокол), возможность запрета обработки определенных запросов,
получение информации о запросе мастера, возможность изменения порядка байт в буфере слэйва, возможность выбора адреса начального регистра слэйва,
поддержка режима отладки (если слэйву назначен адрес 255, то он отвечает на запросы с любым Slave ID - с возможностью ограничения пула адресов с помощью запрещенных запросов),
поддержка режима Spy (прослушивание линии связи);
MB_TcpSlave - поддержка 20 функции Modbus (чтение файлов), возможность запрета обработки определенных запросов,
получение информации о запросе мастера, возможность изменения порядка байт в буфере слэйва, возможность выбора адреса начального регистра слэйва.
MB_SerialReadFile - чтение файлов с помощью 20 функции Modbus (ПЛК выступает в режиме мастера).


44428 44429 44430

Cкачать библиотеку: OwenCommunication_v3.5.11.7.compiled-library (https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenCommunication_v3.5.11.7.compiled-library)
Скачать документацию: CODESYS V3.5. Modbus [3.2] (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v3.2.pdf)

Евгений Кислов
05.10.2021, 10:08
Обновили версию библиотеки до 3.5.11.4.

1. Добавлен ФБ MB_SerialReadFile

57295

Блок позволяет считывать файлы с других приборов с помощью функции Modbus 20 (0x14) Read File Record.

Пример использования блока для считывания заголовка архива с теплосчетчика ВИС.Т:
пример (https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_VistReadArchive_3514v2.projectarchive) / описание протокола счетчика (http://www.teplovizor.ru/mydownloads/singlefile.php?lid=41)

2. Улучшен ФБ MB_SerialSlave

57296


добавлен режим Spy (прослушивание линии связи и выдача информации о "чужих" запросах и ответах).
Поддерживаемые функции: 0x03, 0x04, 0x06, 0x10
Режим включается с помощью входа xSpyMode.
При "поимке" нового запроса на один цикл активируется выход xNewRequest, при "поимке" ответа - выход xNewResponse.
При интенсивном обмене (когда пауза между ними меньше цикла ПЛК) запрос и ответ могут быть детектированы одновременно - тогда взводятся оба выхода.
В течение этого цикла данные о запросе отображаются на выходе stRequestInfo.
Данные из "прослушанных" запросов размещаются по указателю pSpyData.

для режима отладки (c usiSlaveId = 255) добавлена возможность запрета обработки запроса с определенными Slave ID.
Для этого используется новое поле usiSlaveId в структуре MB_REQ_INFO.
Т.е. если ранее блок в этом режиме позволял эмулировать только все устройства шины (отвечая на запросы к любому адресу), то теперь - и набор устройств с определенными адресами.
Функционал добавлен по запросу пользователя fatlortroll (https://owen.ru/forum/showthread.php?t=20069&p=347898&viewfull=1#post347898).


Ссылка на обновленную библиотеку и документацию - в первом посте темы.

Евгений Кислов
11.11.2021, 11:38
Обновили версию библиотеки до 3.5.11.5.

Исправлена ошибка разбора ответа в ФБ MB_SerialReadFile.

Евгений Кислов
02.03.2022, 12:42
Обновили версию библиотеки до 3.5.11.6.

ФБ UNM_TcpRequest и MB_TcpRequest адаптированы для работы на виртуальном контроллере CODESYS Control Win V3.
Ранее выход uiResponseSize после вызова ФБ UNM_TcpRequest принимал некорректное значение - вместо реального размера ответа отображался размер выделенного под него буфера (т.е. значение входа szResponse). Это поведение исправлено - теперь на этом выходе отображается корректное значение.

Проблема проявлялась только на виртуальном контроллере и не воспроизводилась на реальных контроллерах.

Евгений Кислов
04.08.2023, 09:40
Обновили версию библиотеки до 3.5.11.7.
Ссылка на обновленную библиотеку и документацию - в первом посте темы.

1. У ФБ MB_TcpSlave добавлен вход c_tSocketTimeout, характеризующий время до разрыва TCP-соединения в случае отсутствия запросов от клиента.
При значении T#0ms – slave разрывает соединение только при получении от клиента TCP-пакета с флагом FIN или RST.
Это позволяет избежать "полуоткрытых (https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D0%BE%D1%82%D0%BA%D1%80%D 1%8B%D1%82%D0%BE%D0%B5_TCP/IP-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D 0%B8%D0%B5)" соединений и исчерпания лимита одновременных подключений к слэйву.
Описание причины добавления входа: https://owen.ru/forum/showthread.php?t=36837&p=389893&viewfull=1#post389893

2. ФБ MB_TcpSlave теперь отвечает на запросы с Unit ID = 255 и Unit ID = 0 независимо от значения своего входа usiUnitId (согласно спецификации Modbus TCP).
Исправление внесено по просьбе пользователя SolitarY (https://owen.ru/forum/showthread.php?t=38173&p=412590&viewfull=1#post412590).

3. ФБ MB_TcpRequest теперь поддерживает отправку запроса с Unit ID = 0.
Исправление внесено по просьбе пользователя vozlov (https://owen.ru/forum/showthread.php?t=33794&page=6&p=397128&viewfull=1#post397128).

4. Внесены изменения во все Request-ФБ для повышения удобства их использования при программировании на графических языках (в частности, CFC) - теперь нет ограничения на число одновременно обрабатываемых блоков на холсте (в прошлых версиях библиотеки было ограничение в 9 шт.).

Евгений Кислов
05.03.2024, 11:05
Файл библиотеки на ftp обновлен (версия осталась прежней - 3.5.11.7).
Исправлена ошибка в ФБ MB_TcpRequest - теперь ответ от слэйва с Transaction ID = 65535 обрабатывается корректно (ранее возвращалась ошибка SLAVE_DEVICE_FAILURE).