This is topic Octagon6030 по COM-3/4 c I-7000 in forum Микро Мониторы Реального Времени / Micro Real Time Monitors at Форум TRACE MODE: техническая поддержка.


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

Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
Собрали систему, состоящую из компьютера, контроллера Octagon6030 (связь по M-Link COM-1) и модулей I-7000, подключенных к портам COM-2,3 данного контроллера.
При наблюдении данных на компьютере, заметили, что каналы соответствующие модулям I-7000, подключенным к COM-3, часто выставляют признак аппаратной недостоверности (по COM-2 гораздо реже).
Подключив COM-3 контроллера к компьютеру и запустив HiperTerminal наблюдали наряду с нормальными множество искаженных запросов по протоколу ADAM ASCII.
Изменяя скорость передачи по COM-3 контроллера установили, что при увеличении скорости число ошибок снижается. Из этого сделали вывод, что контроллер просто не успевает передавать данные посылаемые в порт программой МикроМРВ.
Отсюда два вопроса:
1) Оценивает ли МикроМРВ готовность порта при передаче каждого следующего байта?
2) Является ли недостоверность канала "In M-Link" признаком ошибки по M-Link либо это недостоверность канала-источника?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Если Вы работаете через встроенный в контроллер конвертор RS-232/RS-485, то одной из причин неустойчивости обмена является очень жесткая аппаратная зависимость параметров управления приемо-передатчиком RS-485 у этих конверторов. Зависит и от скорости линии обмена, и от интенсивности запросов, и от количества подключенных устройств и пр. Все пользователи, работавшие с этой техникой, вынуждены были перейти на выносные конверторы I-7520 или ADAM-4520.
2. Микро МРВ обменивается с COM-портом блоками данных. Работа идет с поддержкой прерываний.
3. Недостоверность выставляется как в случае неполного, искаженного ответа или отсутствия его в течение заданного тайм-аута, так и в случае получения от устройства штатного сообщения об ошибке.
 
Posted by СВТ (Участник № / Member № 707) on :
 
Мы собрали следующую схему:
1. Контроллер Octagon-6030 c МикроМРВ (mrt86_n.exe),
2. Три модуля I-7520, подключенных к COM-2,3,4 контроллера
3. Еще один модуль I-7520, подключаемый попеременно к линиям RS-485 вышеозначенных модулей и по RS-232 к COM-порту компьютера с программой HiperTerminal

Узел МикроМРВ настроен на использование COM-2,3,4 на скорости 115Кбит.
Созданы каналы обмена данными с модулями I-7017 и I-7052, по паре на каждый порт.

Эксперимент выявил следующее:
1. Если период пересчета узла равен 100мс (10-период, 0,01-разрешение), то запросы на порт COM-2 идут стабильно, на порты COM-3,4 вообще не идут.
2. Если период пересчета узла равен 1с (100-период, 0,01-разрешение), то запросы на порт COM-2 идут стабильно, на порты COM-3,4 идут с задержками, пропусками, наложениями следующих друг за другом запросов.
3. С дальнейшим увеличением периода ситуация на меняется.
4. При исключении порта COM-2 (обнулили настройки), COM-3 начинает работать стабильно, COM-4 по прежнему плохо.
5. При исключении порта COM-3, COM-4 начинает работать стабильно.

Таким образом, стабильно работает только младший из назначенных портов.

Почему так происходит?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Одно из основных требований работы СОМ-портов в режиме Мастер под Микро МРВ - это то, что они должны быть настроены на одно прерывание! Поэтому у Вас и не работали 3-й и 4-й СОМ-порты до тех пор, пока не Вы не отключили СОМ2.
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
При использовании платы расширения СOM-портов Octagon5554 запросы пошли по всем трем (необходимым нам) портам, однако только, если период пересчета базы = 1 сек. При периоде = 100мс обмен идет только по первому порту. (Промежуточные значения периода не проверялись)
При этом реально работал только первый порт (на нем восемь модулей), а по двум другим лишь фиксировались запросы от контроллера. Всего модулей в системе 48, таймаут = 100мс.

Можете ли вы сказать, как в такой ситуации правильно выбрать период пересчета и как он влияет на обмен по последовательным портам?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Обмен по последовательным портам производится асинхронно относительно пересчета базы. Поэтому идеально - это подвести пересчет каналов под пропускную способность канала связи и характеристикам устройств.
Т.е. - выровнять поток транзакций, которые генерирует сервер ТМ по количеству транзакций, которое может обработать канал связи.
Последний параметр - зависит от типа протокола, скорости связи, а также от динамических характеристик опрашиваемых устройств.
Необходимо также обратить внимание, что в ДОСе сервер также занят обработкой СОМ порта, что снижает его динамические характеристики по мере увеличения количества этих портов.
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
Не хотите ли вы сказать, что если повесить мои 48 модулей на один порт, то обмен будет происходить быстрее, чем если разнести их по трем портам?

И второй вопрос: отрабатывается ли канал RS-reinit под МикроМРВ? Дело в том, что при попытках его использовать, обмен по соответствующему порту прекращался на неопределенное (возможно ввиду моей нетерпеливости) время.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) Не исключено, попробуйте разнести их хотябы на два СОМ-порта.
2) Да - данный канал должен работать по Микро МРВ. Какое значение Вы посылаете в данный канал, и кааким номером порта Вы управляете?
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
Ну, честно говоря, уменьшать количество используемых портов мне не хочется, т.к. у меня три панели с I-7000, одна или две из которых будут работать на другой скорости, а во вторых у маня щас в контроллере 8 портов (4 на Octagon6030, с которыми TM не может нормально работать и 4 на плате 5554), и если из них я буду использовать лишь два, то это уж будет просто издевательством.
В канал RS-reinit посылаю для COM1 - 1, для COM2 - 2 и так далее сроком на один период пересчета. Обмен по порту прекращается и не возобновляется в течение нескольких минут (больше ждать не стал, т.к. быстрее контроллер перегрузить).
Вчера я собрал свою систему полностью. То, что я наблюдал было похоже на бред... [А-а! / Eek!]
Итак,
1. используются порты 2,3,4 платы 5554 (общее 6-е прерывание, адреса 0х108, 0х110, 0х118) в режиме RS-232 через I-7520;
2. все таймауты по умолчанию, период узла 1 сек. (реальное время пересчета 220-275 мс), скорость обмена по 2 и 3 = 115кбит, по 4 = 38кбит;
3. обмен по порту 2 идет стабильно, по 3-му на одном модуле проскакивает недостоверность, по 4-му стабильная недостоверность по 4-5 модулям;
4. физически отключаем порт 3 - обмен по порту 4 становится стабильным без недостоверностей;
5. если вместо 3-го отключить 4-й порт, то по третьему недостоверность перемещается на другой модуль (хотя проявляется реже)
6. эксперименты с таймаутами или периодами пересчета ситуацию не улучшают [Безумие / Mad] .

Прокомментируйте пожалуйста... [Спокойствие / Cool]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если честно, издевательство - это нагружать так платформу с 8 СОМ портов на процессорный модуль Octagon6030, который имеет CPU 386SX/25Мгц (он даже без сопроцессора)! И Вы еще нагружаете его скоростями на 115.2 Kbps. Вы чем руководствовались когда выбирали данное CPU для своей задачи в 48 модулей DCS? Вы можете себе представить какой поток прерываний надо обработать Микро МРВ помимо собственных задач?
Ну не успевает он на этом процессоре все эту "арматуру" опросить. [Улыбка / Smile]

Есть решения гораздо мощнее и дешевле, сравните для примера:
1) Octagon6030 - стоит примерно 600-700$
2) Wafer4823 - стоит примерно 250-300$
Причем последний также имеет 4 встроенных СОМ-порта, процессор 486DX/75Мгц. Гораздо дешевле и мощнее, причем уже реально используется нашими пользователями в сочетании с DCS-модулями. На базе данного модуля, например, построен контроллер "Теконик" компании ТЕКОН.
А вот пример конфигурации узла контроллера на нем:
реально используется 4 СОМ-порта - на одном сидят 10 модулей типа DCS на скорости 115.2, на другом текстовый терминал DK8070 (тоже на 115.2), на третьем СОМ - GSM модем, на четвертом СОМ - связь с верхним уровнем по M-Link.
База на 400 каналов, много FBD. И все это работает с реальным циклом в 150 мс.
Как видим - задел по мощности гораздо больше и больше потенциал, при почти вдвое меньшей цене!
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
Выбор был обусловлен тем, что данный контроллер с таким же объемом переферии работает у моих коллег вполне успешно, используя собственные СОМ-порты с разными прерываниями, ведя обмен с компьютером по TCP/IP и укладываясь в одну секунду.
Единственное отличие в программном обеспечении.
Вы же утверждаете, что обмен по COM-портам идет асинхронно - так и пусть он идет своим чередом! Почему же он спотыкается то на последних портах?
Я уже не говорю, что МикроМРВ должен все модули за один период опросить - пусть дольше, но ВСЕ и БЕЗ ошибок.

Я попробую снизить скорость, хотя в моем первом эксперименте это приводило к возрастанию числа ошибок.(но таперь же у меня отдельная плата с портами)

Кстати, Wafer4823 имеет только два COM-порта на прерываниях 3 и 4. (см. Руководство пользователя) И рабочая температура у него до 55 (у нас люди бывает при 50 работают, а уж про технику я молчу)
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Прошу прощения - ошибся, не 4823, а 4821.
В том то все и дело, что у Ваших коллег в аналогичном решении собственное программное обеспечение наверняка только и занимается тем, что работает на эти порты и ничего больше. А Микро МРВ это не обработчик портов обмена, он ведь выполняет большое количество функций, таких как: пересчет базы каналов, первичную обработку данных, интерпретацию алгоритмов на FBD, обмен по внешним интерфейсам и прочие сервисные функции. Это же сложный универсальный комплекс, требующий определенных ресурсов.

Попробуйте снизить период пересчета узла, а также - будет полезно разнести каналы по разным фазам пересчета, это снизит нагрузку на сервер Микро МРВ.
 
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
 
Хочу искренне извиниться за вчерашний "наезд" - нестабильность работы двух СОМ-портов была вызвана исключительно моей невнимательностью. [Вращающиеся глаза / Roll Eyes]
Случилось так, что эти порты оказались связанными по RS-485 и передавали в одну линию , да еще и с разной скоростью - естественно, тот что на 115кб работал стабильнее, чем другой на 38кб.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вот и отлично!
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2