Оптимизация VI

Простейшие вопросы в области инженерной разработки
FredP
junior
junior
Сообщения: 56
Зарегистрирован: 19 апр 2020, 01:22
Версия LabVIEW: 2021
Благодарил (а): 6 раз
Поблагодарили: 12 раз
Контактная информация:

Re: Оптимизация VI

Сообщение FredP »

Boxa писал(а): 25 апр 2025, 18:45 Здравствуйте, решил присоседится к оптимизации. Задача вроде простая: собрать данные по modbus и вывести на график. При первой реализации время цикла сбора было 450мс, сейчас смог получить 100мс. Возможно ли как-то добиться скорости цикла сбора 5-10мс?
Скорость передачи 19200 заявлена разработчиком со стороны МК, но в блоках LV где её задать не увидел и реальную скорость не знаю, но думаю если бы отличалась от заданной то обмен бы не работал. Связь выполнена следующим образом от МК по RS485 modbus ASCII подключен к MOXA, к ней я подключаюсь по TCP/IP.
За express при записи файла во втором цикле просьба сильно не пинать:)
10 мс скорее всего не получишь.19200 бод/с это 19,6 байт/с каждые 10 мс. А ведь нужен таймаут, посылка мастера и ответ слейва, и время задержки перед ответом слейва. Поднимай скорость и меняй модбас на кастомный протокол (как, например, делают производители датчиков давления что бы уменьшить время опроса датчика).
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2288
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 33 раза
Поблагодарили: 33 раза

Re: Оптимизация VI

Сообщение Borjomy_1 »

У мохи надо смотреть конфигурацию. А именно размер приемного и передающего буфера. Сама моха может давать задержку, ожидая н-го числа байт. Связано это с тем, что моха отправляет и собирает данные в TCP пакеты и не может знать, что размер датаграммы ограничен. Поэтому ждет наступления таймаута.
Можно переключить моху на режим RS-422, соединить прием на передачу и измерять, сколько пакетов в секунду сможет пропустить сама моха. Только отправку надо делать после того, как вся посылка будет принята
Ответить

Вернуться в «Для чайников»