-----
18.11.2017 форум перенесён на другой хостинг. О замеченых глюках просьба сообщать администраторам.
-----
На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.
Рекламу на своём форуме мы не размещаем ни на каких условиях.

Чтение данных по Modbus Plus

SCADA, серверы, АРМ верхнего уровня, диспетчерские

Автор темы
Arthur
новенький
новенький
Сообщения: 2
Зарегистрирован: 06 авг 2016, 10:54
Имя: Политико Артур Зурабович

Чтение данных по Modbus Plus

Сообщение Arthur » 06 авг 2016, 11:24

Доброго времени.
Возникла необходимость вычитать данные из контроллера по Modbus Plus.
Написал программку для чтения данных. Использую функции для работы с Master Path (Вызываю MbxWriteMpCmd из mbxapi.dll).
Всё необходимое адресное пространство я вычитываю за 92 операции чтения (за 1 чтение не более 125 регистров). В итоге, время затрачиваемое на чтение необходимого адресного пространства у меня занимает более 6 секунд!!!!! :shock:
Маркер "бегает" достаточно шустро (смотрел через MBX Demo, в среднем 20 - 25мс). Сеть одноранговая, в сети 2 узла, ЦПУ и АРМ. АРМ соединён с ЦПУ через PLC USB-MODBUS PLUS CONVERTER. Длина шнура более 3м.
Я в Modbus Plus - новичок. Читал про Peer Cop, но толком ничего не понял. На сколько быстрее с помощью неё можно вычитать данные? Вообще вычитать такой объём данных за приемлемое время (максимум за 1 секунду) это реально? :ges_help:


leon78
завсегдатай
завсегдатай
Сообщения: 591
Зарегистрирован: 25 июл 2008, 09:06
Имя: U.L.A.
Благодарил (а): 2 раза
Поблагодарили: 6 раз
Контактная информация:

Чтение данных по Modbus Plus

Сообщение leon78 » 06 авг 2016, 14:41

1. Контроллер отвечает на запрос в конце цикла сканирования.
2. За один цикл сканирования можно сделать ограниченное число запросов (число "путей" скорее всего 8, точнее не помню).
3. Т.е. теоретически возможное минимальное время опроса = длительность скана контроллера х количество блоков регистров х количество используемых "путей" (не более 8).
Peer Cop не поможет, по нему можно передавать небольшое число регистров.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.


Автор темы
Arthur
новенький
новенький
Сообщения: 2
Зарегистрирован: 06 авг 2016, 10:54
Имя: Политико Артур Зурабович

Чтение данных по Modbus Plus

Сообщение Arthur » 06 авг 2016, 16:30

Спасибо за ответ!
Хотелось бы уточнить следующее:
1 - там кажется получается так:
Узел получает маркер - делает запрос данных, контроллер отправляет квитанцию;
Контроллер получает маркер - отправляет данные узлу, узел отсылает квитанцию о доставке. Или вы о том, что адрес узла контроллера всегда меньше чем адреса других узлов и он в конце цикла получает маркер?
2 - Как я понял, за 1 цикл (за время удержания маркера), можно сделать только 1 запрос. (Хотя вот тут могу ошибаться). Количество путей - это количество одновременных взаимодействий, но слать команды можно только при наличии маркера, так?
3 - Где-то читал, что одноранговая сеть способна передавать: (20к регистров / количество узлов в сети). У меня 2 узла, но мои 3к регистров вычитываются очень долго.

Про Peer Cop я читал что он способен 500 регистров одним махом (в одной транзакции) вычитать... Интересно было бы послушать людей, кто действительно конфигурил MB+ драйвер для него...

Хотелось узнать, сколько действительно (на практике) способна MB+ передавать регистров? У кого есть такие данные?