Приходится заниматься регулярно такой писаниной.
СOM порты худшее, что можно придумать для таких дел.
Во первых из-за низкой скорости, во вторых из-за низкой интеграбельности в стандартные системы сбора данных.
Т.е. конечно на COM порт есть море проприетарных(закрытых) протоколов или примитивных открытых (вроде MODBUS) но они создают сильные трудности когда надо действительно много дивайсов контролировать.
Много - это ближе к тысяче и более. Впрочем это могут быть не дивайсы, а отдельные узлы дивайсов или даже отдельные параметры тогда узлов даже при нескольких дивайсах может стать больше тысячи.
Другая проблема это разделение на потоки по интересам или мультиплексирование потоков данных в разные програмные комплексы для анализа.
Это тоже на рудиментарном уровне при использовании COM интерфейса.
Если ориентироваться на открытые решения, то очень удобно использовать протокол SNMP.
SNMP работает поверх UDP, а тот в свою очередь поверх IP.
Протокол IP можно реализовать как на интерфейсе Ethernet, так и на COM порту но придется еще подставить снизу либо протокол SLIP либо протокол PPP. Вернее Direct connect PPP. Такой PPP не требует вспомогательного движка AT команд и вносит оверхед в считанные байты.
Правда заголовки IP, UDP и SNMP под сотню байт могут нагрузить каждый пакет.
Поэтому COM всетаки будет медленоват.
Но зато протокол SNMP понимают большинство SCADA, открытые системы распределенного управления как OpenNMS, море простых програм для управления по SNMP и наконец есть доступные компоненты работы с SNMP для RAD Studio, Visual Studio и т.д. вплоть до ActiveX для Excel-а
SNMP выполнен так, что поддерживает работу с параметрами структурированными в виде иерархического дерева. Это позволяет легко отфильтровавать в реальном времени интересующие домены параметров прямо во входном потоке без обратного поиска по таблицам или сравнений с фильтрами.
Реальное время и разгрузка процессора от поиска и сравнения позволяет применять SNMP в системах с постоянными, мощными и разнообразными потоками данных.
Другие интересные варианты предлагают пакеты вроде NI LabVIEW Embedded Module и Matlab.
Они хороши тем, что прямо в них можно делать и анализ и визуализацию данных.
Речи о простой организации связи с тысячами устройств там не идет но с десятком можно связь наладить опять же дешево и сердито.
Особенно интересен NI LabVIEW под ARM где они дают исходники эффективного движка на базе RTOS от Keil. Исходники автоматически компилируются и грузятся в микроконтроллер. А на PC LabVIEW одновременно формирует приложение которое те данные принимает (и по COM, и по Ethernet)и может вывести куда надо: на график, в файл, в блок анализа и фильтрации, в Интенет и т.д.
А вообщем мысль такая, есть куча методов не писать программу мониторинга.
Исключение разве что реалтайм мониторинг через малоисследованные каналы передачи данных, как GPRS или ZigBee
Цитата(miksher @ Dec 23 2008, 12:17)

Здравствуйте.
Хотелось бы спросить у вас, кто-нибудь занимался разработкой программного обеспечения для мониторинга различных контроллеров? Напишите пожалуйста мне кто писал программы мониторинга.
Я занимаюсь разработкой ПО для мониторинга дизель-электро установок(ДЭУ), то есть программа ведет опрос контроллеров установленных в ДЭУ через COM-порты.
Хотел поинтересоваться различными идеями, алгоритмами таких или подобных проектов, а так же поделится своими мыслями.
Пишите пожалуйста сюда, буду благодарен за отклик.