Доброго времени суток! В разрабатываемом нами проекте всплыли проблемы со связью (таймауты). Боевой проект разбился на массу маленьких подпроектов, которые собственно и тестировались... И тут обнаружилась критичная для нас ошибка, не устранив которую нет смысла продолжать проект. В максимально упрощенной конфигурации наш тестовый проект выглядит так: компьютер (МРВ) – RS232 (M-LINK) – Контроллер (Лагуна)(Микро МРВ) – RS485 (DCS)– УСО (7017). Шесть каналов DCS (Ain) внизу ( в Лагуне) - "общаются" с модулем УСО 7017 и шесть каналов СВЯЗЬ (In M-Link) наверху - "тянут" данные по M-Link. При запуске проекта в отладочном режиме в log-файле видим следующие строчки: OUT: 40<@> 01 01 02 20< > 00 04 00 00 00 00 00 26<&> 2a<*> ERR IN0: RS:COM 1 check error OUT: 40<@> 01 01 02 21<!> 00 03 00 00 00 00 00 20< > 2a<*> ERR IN0: RS:COM 1 check error
то есть идут таймауты в обмене между МРВ и МикроМРВ даже в такой элементарной конфигурации.... Может быть подскажете, в чем тут дело? PS скорости обмена по M-LINK и DCS - 115200 PSS изменять скорости обмена не представляется возможным, так как это связано с особенностями разрабатываемой системы
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Какие таймауты заданы в настройках порта МРВ для СОМ-порта и в Лагуне по обоим портам (Мастер и Слейв)?
2) Какой цикл пересчета у МРВ и Лагуны?
Posted by Антон Рассказов (Участник № / Member № 984) on :
− настройки COM-портов Лагуны: COM3 (Slave M-Link) – адрес ff80, скорость 115.2 к, контроль 8-1-n, таймаут 200, прерывание 14, управление передачей нет, COM2 (Связь с контроллером – адрес 100, скорость 115.2 к, контроль 8-1-n, таймаут 200 , прерывание 13, управление передачей RTS (auto); − настройка порта COM1 компьютера: адрес – 3f8, скорость – 115.2 к, контроль – 8-1-n, таймаут – 500, прерывание – 4, управление передачей - нет
Настройки узлов МРВ - период пересчета 30, разрешение 0.001, период пересчета M-Link-каналов 1 сек. Лагуна - период рересчета 4, разрешение 0.055, период пересчета DCS-каналов 1 цикл.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В Вашем проекте для каналов обмена по M-Link установлена не 1 секунда, а 1 цикл. Поэтому у Вас очень большая интенсивность запросов к узлу Лагуны, что скорее всего и приводит к появлению ошибок в обмене - траффик постоянно "забит" запросами и Лагуна не успевает ответить на них.
Кроме того - обращаю Ваше внимание на то, что для узла АРМ Вы выставили разрешение таймера в 1 мс. Под MS Windows минимальный цикл может быть 10 мс. Даже если задать 1 мс, ОС все равно выставит его в 10 мс. МРВ автоматически корректирует множитель, понижая его до 3-х, но все же рекомендую Вам поменять данные настройки в самом проекте ТМ.
Posted by Антон Рассказов (Участник № / Member № 984) on :
Выполнили все Ваши рекомендации, но увы... результат нулевой...
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
### Мы продолжаем исследования Вашего проекта - результаты сообщим позже.