PDA

Просмотр полной версии : Библиотека OwenCommunication - если требуется переоткрыть порт с другими параметрами



AlexZ
16.12.2022, 07:36
В проекте используется RTU MB_Master и MB_Slave через библиотеку
Есть два вопроса по библиотеке:
1) Как правильно закрыть COM порт и затем открыть с новыми параметрами (на ST)
2) Сколько максимально регистров можно прочитать с помощью ФБ MB_SerialRequest, функция 3. Вопрос возник, потому что при чтении 2-х регистров
все работает нормально, а при чтении 32-х регистров выдает ошибку CRC fail.

Евгений Кислов
16.12.2022, 08:38
Добрый день.

1) Вызвать экземпляр ФБ COM_Control со значением FALSE на входе xEnable. Дождаться появления значения FALSE на выходе xActive.
После этого изменить значения на нужных входах блока и опять вызвать его со значением TRUE на входе xEnable.

2) Макс. число регистров в запросе чтения - 125.

mr.SiMM
05.06.2026, 08:12
Добрый день.

1) Вызвать экземпляр ФБ COM_Control со значением FALSE на входе xEnable. Дождаться появления значения FALSE на выходе xActive.
После этого изменить значения на нужных входах блока и опять вызвать его со значением TRUE на входе xEnable.Параметры разве не по переднему фронту фиксируются? Почему этих нюансов нет в документации?
Хотя и к существующим деталям есть вопросы – например, на версии библиотеки 3.5.11.7 MB_SerialSlave удерживает xNewRequest в течении двух циклов, а не одного, как дОлжно ¯\_(ツ)_/¯
Фирмварь 3.7.0923.1107

Евгений Кислов
05.06.2026, 08:41
Добрый день.


Параметры разве не по переднему фронту фиксируются? Почему этих нюансов нет в документации?

По переднему. В документации указано, что открытие/закрытие COM-порта происходит по переднему/заднему фронту входа xEnable.


Хотя и к существующим деталям есть вопросы – например, на версии библиотеки 3.5.11.7 MB_SerialSlave удерживает xNewRequest в течении двух циклов, а не одного, как дОлжно

Это действительно так. При следующем обновлении - синхронизируем описание и реальное поведение.

mr.SiMM
25.07.2026, 17:38
По переднему. В документации указано, что открытие/закрытие COM-порта происходит по переднему/заднему фронту входа xEnable.Возможно (просто уже не помню) мы о разных документациях говорим – например, тут про открытие нет:
89864
да и момент с фиксацией параметров обмена отсутствует и в pdf (https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Modbus_v3.2.pdf)'ке
89865
кмк, это если и очевидно – то не для всех.
Дождаться появления значения FALSE на выходе xActive. После этого изменить значения на нужных входах блокаА смутил меня тогда, насколько помню, именно этот момент – потому как в моём представлении чего-то дожидаться не требуется (но проверить сейчас не на чем).
При следующем обновлении - синхронизируем описание и реальное поведение.А в чью пользу – в пользу реального поведения измените документацию или наоборот (кмк, последний вариант правильнее)?

Оффтоп: и, кстати, мне одному кажется, что конфигурировать чётность и число стоп-бит одной настройкой куда проще? )
89866

Евгений Кислов
25.07.2026, 18:12
А в чью пользу – в пользу реального поведения измените документацию или наоборот (кмк, последний вариант правильнее)?

Поведение будет приведено в соответствие с документацией.

Насчет комментариев по поводу документации - согласен, что можно добавить определенные уточнения. Я записал это в бэклог.