Tracker 2.
Здесь Вы можете найти саму программу, ее исходный код и сопутствующие
программы.
Эти программы позволяют производить отладку программ, SCADA-проектов
и прочего ПО, общающегося с устройствами через Modbus по RS232 или TCP/IP.
Для отладки SerialRTU-версии Вам нужно соединить нуль-модемным кабелем
порт, на котором эмулируется устройство с портом, к которому привязан Modbus-master.
Программа поддерживает привязку к регистрам так называемых "скриптов",
например синусов, трегольников, пульсов заданной скажности и высоты, случайных
чисел и т.д. Все скрипты выполнены в виде отдельной DLL, исходники прилагаются
- творите.
Все замечания и предложения просьбы отсылать на e-mail указанный в
About или мне лично shadson@ukr.net.
Tracker предсталяет собой COM/DCOM (НЕ OPC!!!) сервер для сети Modbus. Поддерживаются до 32 последовательных портов с любыми настройками, до 247 устройств на каждый порт. Для чтения данных производится оптимизация запросов с целью сокращения времени на обработку ВСЕХ данных с каждого узла. Полученные данные масштабируются, производится коррекция дрейфа нуля. Забрать такие данные можно, подключаясь к программе как к COM/DCOM серверу. Спецификации поддерживаемых фунций можно найти в "скелете" документации, необходимые TLB файлы - в исходниках. Данные могут читаться синхронно(т.е. постоянно), так и асинхронно(при команде из COM/DCOM-клиента). Также сервер умеет записывать данные(только асинхронно, само собой). Умеет возвращать QUALITY каждого параметра, хотя значений не так уж и много, но достаточно, чтоб определить обрыв связи и время его появления (последнего успешного чтения). Список имеющихся данных для чтения можно получить из сервера через примитивнейшее подобие Browse-интерфейса OPC, но проще, зная имя канала, просто получить через GetIdByName для этого канала Id и дальше с ним работать.
Документация, точнее ее скелет - здесь.
Статья по оптимизации запросов, на основе которой работает механизм оптимизации - здесь.
Сам исполняемый файл Tracker2 - здесь.
Исходный код Tracker2 - здесь. Требует установленного Delphi5Upd#1, RX2.75 и Async32 1.49.
Программа, которая подключается к серверу, показывает список данных и считывает их - здесь.
Ее исходный код - здесь.
Программа для тестирования линий связи Modbus на базе Tracker2 (c использованием пакетов разной длины и выдачей отчета по ошибкам) - здесь.
Ее исходный код - здесь.
Для конфигурирования читаемых данных можно воспользоваться программой RDE, которая имеет более-менее приличный интерфейс. Скачать ее можно здесь.
Все исходные коды АБСОЛЮТНО свободно можно распространять и использовать. Буду благодарен за указание имени автора.
Если у кого-то есть пожелания, предложения или замечания - прошу в e-mail:
shadson@ukr.net.