This is topic вопрос по modbus'u in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001347.html

Posted by Judchin (Участник № / Member № 6455) on :
 
Добрый день!
Есть несколько модулей, управляемых по Modbus (16 функция).
В источниках для создаю компоненты W_Word(16), назначаю им номера ком-порта, адреса модулей и регистров.
При этом некоторые не работают, НО если компонент, который не работает продублировать с другим именем, то по новому имени РАБОТАЕТ, а по старому (он тоже есть в системе) НЕТ. Если при этом не работающий удалить, то второй работать отказывается.
Всего в проекте 6 модулей.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Мы готовы рассмотреть Ваш проект (с подробными комментариями, как воспроизвести ситуацию).
Присылайте Ваш проект на адрес техподдержки. Мы промоделируем его работу с помощью эмуляторов.
 
Posted by Judchin (Участник № / Member № 6455) on :
 
проект выслал
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Проект получили и протестировали в релизе 6.09 с Modbus-эмулятором.
Проблем не обнаружили.

Тестовый вариант Вашего проекта с протоколами переслали Вам почтой.
 
Posted by Judchin (Участник № / Member № 6455) on :
 
Проблема начала "случайным" образом мигрировать на разные каналы. Закономерности я не нашел.
Самый печальный случай если один из модулей отключен, вероятность с остальных получить данные резко снижалась.
Два дня нервов и плясок с бубном помогли запустить проект. Результат печальный.
Проект успешно запустился только после того как удалил полностью из системы Modbus (всего 18 переменных) и подключил внешний OPC server (InSat OPC Server). Система заработала сразу и полностью.
Таким образом проблема оказалась в компоненте Modbus.
Возможно Trace Mode просто не успевал обрабатывать проект (хотя о странно). Возможно получившаяся в итоге двухпоточная система оказалась эффективней.

P.S. Проект тестировался на Windows 7 64-bit, CPU Intel Core i7; ОЗУ 8 ГБ
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
У Вас в проекте задан период пересчета базы каналов 1*0.05=0.05 с.
Возможно, что при такой динамике опроса на несущей 57600 бит/с последовательный канал не справляется.
Попробуйте увеличить период пересчета и снизить несущую частоту.

Какой конвертор RS 232/485 Вы используете?
Требует ли он управления приемо-передатчиком и согласования шины RS 485?
 
Posted by Judchin (Участник № / Member № 6455) on :
 
quote:
Какой конвертор RS 232/485 Вы используете?
AC4 USB <-> RS485 ОВЕН. Не знаю требует ли он отдельного управления.
quote:
У Вас в проекте задан период пересчета базы каналов 1*0.05=0.05 с.
Вы сказали о том же, что не хватает многозадачности. Trace Mode не справляется, а у процессора используется только одно ядро. Почему нельзя сделать много поточное приложение. Modbus (или другие способы I/O) опрашивать в своем цикле.
Про многопоточность написано в любом нормальном учебнике по системному программированию.
quote:
Попробуйте увеличить период пересчета и снизить несущую частоту.

Снижение несущей частоты увеличит время опроса (последний тест проводил для скорости 38400 бит/с).
Увеличение период пересчета может быть поможет, но "отзывчивость" элементов управления снизится.
Главное у меня сейчас есть первая рабочая версия, которую надо дальше надо тестировать. Неприятно, что надо использовать дополнительное ПО, но так работает.
Может быть потом попробую увеличить период пересчета, если заработает отпишусь.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если конвертор требует управления приемо-передатчиком, надо обязательно задавать этот режим в настройках COM-порта в проекте.

Если Вы проведете предложенное Вам в письме протоколирование, Вы увидите все сообщения об ошибках. По этим сообщениям и можно будет сделать вывод о том, какой компонент обмена не справляется и по какой причине.

Каждый COM-порт в Trace Mode 6 обслуживается отдельным асинхронным потоком. Опрос ведется в полудуплексном режиме.
 
Posted by Judchin (Участник № / Member № 6455) on :
 
Преобразователь интерфейсов АС4 не требует дополнительного управления.

Поставил в пересчете разрешение 0.1, работает стабильней, но иногда команды не проходят.
С внешним OPC все работает стабильно даже при разрешении 0.05

Времени на глубокую отладку пока нет. (и это слегка выходит за рамки слогана "Просто нарисуй и запусти")

В любом случае проект работает. И это главное.
Остался еще один вопрос, про вычитание каналов типа Time, но лучше по нему еще одну ветку создам.

Спасибо за консультацию
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Лучше пришлите ясное описание задачи "про вычитание каналов типа TIME" на адрес техподдержки (возможно, с Вашей тестовой иллюстрацией).
 
Posted by ValL (Участник № / Member № 4759) on :
 
Для Judchin:
Не пробовал подсчитать, сколько требуемых транзакций (запрос-ответ) возможно передать по COM-порту за 50 мс при скорости 57600 и идеальных условиях?
Я так понимаю, что менее 4 мс на транзакцию не получится. А сколько их нужно?

Интересно, а какое получилось реальное время обновления каналов через внешний OPC server (InSat OPC Server)?
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2