Доброго времени.
Возникла необходимость вычитать данные из контроллера по Modbus Plus.
Написал программку для чтения данных. Использую функции для работы с Master Path (Вызываю MbxWriteMpCmd из mbxapi.dll).
Всё необходимое адресное пространство я вычитываю за 92 операции чтения (за 1 чтение не более 125 регистров). В итоге, время затрачиваемое на чтение необходимого адресного пространства у меня занимает более 6 секунд!!!!!
Маркер "бегает" достаточно шустро (смотрел через MBX Demo, в среднем 20 - 25мс). Сеть одноранговая, в сети 2 узла, ЦПУ и АРМ. АРМ соединён с ЦПУ через PLC USB-MODBUS PLUS CONVERTER. Длина шнура более 3м.
Я в Modbus Plus - новичок. Читал про Peer Cop, но толком ничего не понял. На сколько быстрее с помощью неё можно вычитать данные? Вообще вычитать такой объём данных за приемлемое время (максимум за 1 секунду) это реально?
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Чтение данных по Modbus Plus
Модератор: Специалисты SE
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 06 авг 2016, 10:54
- Имя: Политико Артур Зурабович
- Страна: Россия
- город/регион: Брянск
-
- эксперт
- Сообщения: 1031
- Зарегистрирован: 25 июл 2008, 10:06
- Имя: Леонид
- Страна: РФ
- Благодарил (а): 34 раза
- Поблагодарили: 110 раз
Чтение данных по Modbus Plus
1. Контроллер отвечает на запрос в конце цикла сканирования.
2. За один цикл сканирования можно сделать ограниченное число запросов (число "путей" скорее всего 8, точнее не помню).
3. Т.е. теоретически возможное минимальное время опроса = длительность скана контроллера х количество блоков регистров х количество используемых "путей" (не более 8).
Peer Cop не поможет, по нему можно передавать небольшое число регистров.
2. За один цикл сканирования можно сделать ограниченное число запросов (число "путей" скорее всего 8, точнее не помню).
3. Т.е. теоретически возможное минимальное время опроса = длительность скана контроллера х количество блоков регистров х количество используемых "путей" (не более 8).
Peer Cop не поможет, по нему можно передавать небольшое число регистров.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 06 авг 2016, 10:54
- Имя: Политико Артур Зурабович
- Страна: Россия
- город/регион: Брянск
Чтение данных по Modbus Plus
Спасибо за ответ!
Хотелось бы уточнить следующее:
1 - там кажется получается так:
Узел получает маркер - делает запрос данных, контроллер отправляет квитанцию;
Контроллер получает маркер - отправляет данные узлу, узел отсылает квитанцию о доставке. Или вы о том, что адрес узла контроллера всегда меньше чем адреса других узлов и он в конце цикла получает маркер?
2 - Как я понял, за 1 цикл (за время удержания маркера), можно сделать только 1 запрос. (Хотя вот тут могу ошибаться). Количество путей - это количество одновременных взаимодействий, но слать команды можно только при наличии маркера, так?
3 - Где-то читал, что одноранговая сеть способна передавать: (20к регистров / количество узлов в сети). У меня 2 узла, но мои 3к регистров вычитываются очень долго.
Про Peer Cop я читал что он способен 500 регистров одним махом (в одной транзакции) вычитать... Интересно было бы послушать людей, кто действительно конфигурил MB+ драйвер для него...
Хотелось узнать, сколько действительно (на практике) способна MB+ передавать регистров? У кого есть такие данные?
Хотелось бы уточнить следующее:
1 - там кажется получается так:
Узел получает маркер - делает запрос данных, контроллер отправляет квитанцию;
Контроллер получает маркер - отправляет данные узлу, узел отсылает квитанцию о доставке. Или вы о том, что адрес узла контроллера всегда меньше чем адреса других узлов и он в конце цикла получает маркер?
2 - Как я понял, за 1 цикл (за время удержания маркера), можно сделать только 1 запрос. (Хотя вот тут могу ошибаться). Количество путей - это количество одновременных взаимодействий, но слать команды можно только при наличии маркера, так?
3 - Где-то читал, что одноранговая сеть способна передавать: (20к регистров / количество узлов в сети). У меня 2 узла, но мои 3к регистров вычитываются очень долго.
Про Peer Cop я читал что он способен 500 регистров одним махом (в одной транзакции) вычитать... Интересно было бы послушать людей, кто действительно конфигурил MB+ драйвер для него...
Хотелось узнать, сколько действительно (на практике) способна MB+ передавать регистров? У кого есть такие данные?