Judchin
Junior Member / Новичок
Участник № / Member № 6455
отправлено / posted
Добрый день! Есть несколько модулей, управляемых по Modbus (16 функция). В источниках для создаю компоненты W_Word(16), назначаю им номера ком-порта, адреса модулей и регистров. При этом некоторые не работают, НО если компонент, который не работает продублировать с другим именем, то по новому имени РАБОТАЕТ, а по старому (он тоже есть в системе) НЕТ. Если при этом не работающий удалить, то второй работать отказывается. Всего в проекте 6 модулей.
Сообщения / Posts 11 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Мы готовы рассмотреть Ваш проект (с подробными комментариями, как воспроизвести ситуацию). Присылайте Ваш проект на адрес техподдержки. Мы промоделируем его работу с помощью эмуляторов.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Judchin
Junior Member / Новичок
Участник № / Member № 6455
Judchin
Junior Member / Новичок
Участник № / Member № 6455
отправлено / posted
Проблема начала "случайным" образом мигрировать на разные каналы. Закономерности я не нашел. Самый печальный случай если один из модулей отключен, вероятность с остальных получить данные резко снижалась. Два дня нервов и плясок с бубном помогли запустить проект. Результат печальный. Проект успешно запустился только после того как удалил полностью из системы Modbus (всего 18 переменных) и подключил внешний OPC server (InSat OPC Server). Система заработала сразу и полностью. Таким образом проблема оказалась в компоненте Modbus. Возможно Trace Mode просто не успевал обрабатывать проект (хотя о странно). Возможно получившаяся в итоге двухпоточная система оказалась эффективней.
отправлено / posted
У Вас в проекте задан период пересчета базы каналов 1*0.05=0.05 с. Возможно, что при такой динамике опроса на несущей 57600 бит/с последовательный канал не справляется. Попробуйте увеличить период пересчета и снизить несущую частоту.
Какой конвертор RS 232/485 Вы используете? Требует ли он управления приемо-передатчиком и согласования шины RS 485?
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Judchin
Junior Member / Новичок
Участник № / Member № 6455
отправлено / posted
quote: Какой конвертор RS 232/485 Вы используете?
AC4 USB <-> RS485 ОВЕН. Не знаю требует ли он отдельного управления.
quote: У Вас в проекте задан период пересчета базы каналов 1*0.05=0.05 с.
Вы сказали о том же, что не хватает многозадачности. Trace Mode не справляется, а у процессора используется только одно ядро. Почему нельзя сделать много поточное приложение. Modbus (или другие способы I/O) опрашивать в своем цикле. Про многопоточность написано в любом нормальном учебнике по системному программированию.
quote: Попробуйте увеличить период пересчета и снизить несущую частоту.
Снижение несущей частоты увеличит время опроса (последний тест проводил для скорости 38400 бит/с). Увеличение период пересчета может быть поможет, но "отзывчивость" элементов управления снизится. Главное у меня сейчас есть первая рабочая версия, которую надо дальше надо тестировать. Неприятно, что надо использовать дополнительное ПО, но так работает. Может быть потом попробую увеличить период пересчета, если заработает отпишусь.
Сообщения / Posts 11 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Если конвертор требует управления приемо-передатчиком, надо обязательно задавать этот режим в настройках COM-порта в проекте.
Если Вы проведете предложенное Вам в письме протоколирование, Вы увидите все сообщения об ошибках. По этим сообщениям и можно будет сделать вывод о том, какой компонент обмена не справляется и по какой причине.
Каждый COM-порт в Trace Mode 6 обслуживается отдельным асинхронным потоком. Опрос ведется в полудуплексном режиме.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Judchin
Junior Member / Новичок
Участник № / Member № 6455
отправлено / posted
Преобразователь интерфейсов АС4 не требует дополнительного управления.
Поставил в пересчете разрешение 0.1, работает стабильней, но иногда команды не проходят. С внешним OPC все работает стабильно даже при разрешении 0.05
Времени на глубокую отладку пока нет. (и это слегка выходит за рамки слогана "Просто нарисуй и запусти")
В любом случае проект работает. И это главное. Остался еще один вопрос, про вычитание каналов типа Time, но лучше по нему еще одну ветку создам.
отправлено / posted
Лучше пришлите ясное описание задачи "про вычитание каналов типа TIME" на адрес техподдержки (возможно, с Вашей тестовой иллюстрацией).
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ValL
Junior Member / Новичок
Участник № / Member № 4759
отправлено / posted
Для Judchin: Не пробовал подсчитать, сколько требуемых транзакций (запрос-ответ) возможно передать по COM-порту за 50 мс при скорости 57600 и идеальных условиях? Я так понимаю, что менее 4 мс на транзакцию не получится. А сколько их нужно?
Интересно, а какое получилось реальное время обновления каналов через внешний OPC server (InSat OPC Server)?
Сообщения / Posts 19 | Из / From: Украина
| IP / IP: IP адрес / IP address |