Стартовая страница › Форумы › Взаимодействие с устройствами › Modbus › Опрос нескольких каналов устройства
- В этой теме 20 ответов, 4 участника, последнее обновление 2 года, 9 месяцев назад сделано Mikhail.
-
АвторСообщения
-
23.06.2021 в 01:41 #20168vgУчастник
Здравствуйте!
Подскажите пожалуйста, каждая линия связи инициирует отдельное соединение с опрашиваемым устройством?
Например, мне надо считать 3 значения с каждого из 8-ми каналов устройства.
Регистры расположены далеко друг от друга и, если я правильно понимаю, групповым запросом такое не считать, так как будет превышение пакета в 253 байта. Поэтому я попробовал создать 24 линии связи, чтобы считать каждый из параметров по отдельности, но считывалось только 8 из 24 (ровно столько подключений одновременно поддерживает устройство).23.06.2021 в 11:46 #20169manjey73УчастникОдин прибор — одна линия связи
Шаблон моет быть построен как группой, так и несколькими группами
А так же можно на один прибор создать несколько КП, чтобы разнести запросы по времени.23.06.2021 в 15:17 #20176MikhailМодераторПодскажите пожалуйста, каждая линия связи инициирует отдельное соединение с опрашиваемым устройством?
Да.
При этом Вы можете без проблем «разбить» устройство как бы на несколько, но разместив их на одной линии связи. В свойствах канала связи обязательно убрать галочку «оставаться на связи», чтобы после опроса Коммуникатор освобождал соединение.
@manjey73 то же самое написал, немного другими словами.- Этот ответ был изменен 2 года, 9 месяцев назад от Mikhail.
23.06.2021 в 15:42 #20182vgУчастникСпасибо, как раз после неудачи перегруппировал параметры по 8-ми каналам.
В теории может возникнуть необходимость считать группу разрозненных регистров за короткий промежуток времени, в таком случае, если я правильно понимаю, необходимо выставлять меньший таймаут, чтобы считывание всех параметров/групп параметров уложилось в некий интервал времени. И выходит, что если линий много (проект большой), то вырастет нагрузка на компьютер, может начнёт подлагивать что то. Опять же я всё ещё мало знаком со SCADA-системами и не знаю как часто используются «быстрые» устройства, но сам работаю постоянно с довольно шустрыми устройствами (2 измерения в секунду).
23.06.2021 в 15:48 #20183a80808УчастникИМХО в реалтайме не успеет с такими скоростями…
Надо буфер ставить (в устройствах нет?) и читать потом пакетом…
А почему ограничение на пакет в 253 байта? Вроде бы Модбвс и больше умеет читать… Во всяком случае с метеостанции МК26 читается 512 регистров double за раз…23.06.2021 в 15:48 #20184a80808УчастникЗЫ. С телефона пишу, потому коряво 😀😀
23.06.2021 в 15:59 #20185vgУчастникНаверное умеет, не пробовал, но, если я правильно понял, то данные будут разбиваться на несколько пакетов. Стандартный пакет вроде 256 (3 заголовок + 253 под значения). А это получается снова увеличение времени получения нужных данных.
23.06.2021 в 16:36 #20187a80808УчастникНесколько коммуникаторов, чтение в параллель, потом собирать на сервере. Вроде даже 5.8 умеет так работать. Чемтно скажу, я не пробовал
23.06.2021 в 17:55 #20188vgУчастникНе понял про несколько коммуникаторов. Речь про службу ScadaComm? Как это организовать?
Есть ограничение у устройства по количеству одновременных подключений, то есть хоть из одного места опрашивай по 8-ми линиям связи, хоть из нескольких.23.06.2021 в 23:40 #20189a80808УчастникК сожалению не подскажу. Вроде бы здесь где то обсуждался вариант…
Если не прав — Михаил поправит 🙂24.06.2021 в 09:08 #20190manjey73УчастникЕсли ваше устройство с TCP протоколом и это ПЛК, можно сделать несколько портов для Slave и тогда можно сделать несколько линий связи.
Но с готовыми устройствами это не прокатит.
А, если устройство поддерживает несколько сокетов, то тоже можете попробовать сделать несколько линий связи. Но возможно не прокатит, читающее устройство то ведь одно.
Тут можно схитрить, сделать алиасы на сетевую карту, то есть виртуальные сетевые карты, но как вот в линии связи указать от какой сетевой выполнять запрос ?Как на Window делать виртуальные сетевые карты не скажу.
24.06.2021 в 09:27 #20193a80808УчастникНа виртуальных машинах можно «наплодить» дополнительные сетевые карты, как на железе — не помню 🙁
24.06.2021 в 09:29 #20194a80808Участник24.06.2021 в 09:29 #20195a80808Участник24.06.2021 в 09:31 #20196a80808УчастникТолько вот скорее всего надо несколько сетевых адресов на контроллере… На сервере SCADA ИМХО не поможет — обращение будет к одному сетевому адресу, контроллер или пропустит или в очередь поставит…
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.