Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Промышленные сети и коммуникации
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

ModBus Чтение всех каналов за одну команду

 Ответить Ответить
Автор
Сообщение
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: ModBus Чтение всех каналов за одну команду
    Опубликовано: 02 Октябрь 2007 15:52

Переводим приборы на modbus. 

 Могут ли скады читать 3 командой массив регистров и таки образом получать величину измерения  и состояние измерения всех каналов за один запрос и можно ли при этом обойтись без OPC сервера?

  Можно ли состояние реле и дискретных входов упаковать в регистры и сможет ли скада сама разобраться в них без OPC сервера?

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
SIBER Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 15 Апрель 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 101
Свойства публикации Свойства публикации   Ответить, цитируя автора - SIBER Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Октябрь 2007 10:48

TRACE MODE 5 и 6. Встроенная прямая поддержка Modbus/RTU и /TCP с формированием групповых запросов.

Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Ноябрь 2007 21:45

А вот и нет! Разработчики сознались что в случае смешанных данных понадобится по крайней мере 3 запроса от скады.

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
Kanzi Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Сентябрь 2006
Online Status: Offline
Публикации: 125
Свойства публикации Свойства публикации   Ответить, цитируя автора - Kanzi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Ноябрь 2007 12:42
Первоначально опубликовано Vald

Переводим приборы на modbus. 

Переводите на CAN, тогда запросы вообще не нужны, приборы сами будут пересылать результаты (если смогут)

Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Ноябрь 2007 14:01
Чем больше разбираюсь -  там больше убеждаюсь что Modbus не нужен.  Производители оборудования дружно его проигнорировали и по прежнему под себя каждый лепит драйвер (хотя прибор вроде бы под Modbus работает).
При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
KostyaK Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 02 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 110
Свойства публикации Свойства публикации   Ответить, цитируя автора - KostyaK Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 19 Ноябрь 2007 14:04

Первоначально опубликовано Vald

Чем больше разбираюсь -  там больше убеждаюсь что Modbus не нужен.  Производители оборудования дружно его проигнорировали

Насчёт дружного игнорирования не соглашусь.

Первоначально опубликовано Vald

Производители оборудования  ... по прежнему под себя каждый лепит драйвер (хотя прибор вроде бы под Modbus работает).

Вернее сказать, производители для своего оборудования, несмотря на поддержку последними стандартных протоколов обмена, выпускают драйвера. 

Это широко распространённая практика. Поддержка прибором любого протокола обмена (в т.ч. модбаса) как раз и реализуется для того, чтобы в тч и на "верхнем уровне" (Ваш случай) можно было организовать обмен данными. Для возможности общения с прибором на верхнем уровне как раз и требуется драйвер, который возмёт на себя реализацию обмена как на физическом уровне (например, обмен через ком-порт), так и публикацию данных с контроллера (например, в виде OPC-тегов).

Для прибора, поддерживающего широко распространённый протокол обмена (тот же модбас) можно брать драйвера  сторонних разработчиков. Но нередко производители выпускают оригинальные драйвера для своих приборов. И это вполне рационально.

На конкретном примере.

Работал на предприятии, выпускающем контроллерное оборудование.  В контроллер закладывалась поддержка модбаса. И до появления специализированного драйвера инжринговые фирмы без проблем подключали приборы к своим скада с помощью модбас ОРС-серверов сторонних производителей. Но были некоторые неудобства. Например, прибор измеряет виброскорость 0-25 мм/мек или виброускорение +-2.5 мм/сек. Эти величина... не дискретная. Но в контроллере достаточно трудно было реализовать операции для чисел с плавающей запятой. Поэтому сделали так: в регистры с текущими значениями писались целые числа, а в другой регистр - тип измеряемой величины.

Алгоритм опроса контроллера (по модбасу) в этом случае был такой:

1) считывался регистр, хранящий тип измеряемой величины (типа 0 - вибросокрость, 1- виброперемещение). В зависимости от этого выставлялся коэффициет пересчёта значений с регистров текущих значений параметров. Например, для вибросокрости коэфиициент был 0.1, для виброускорения - 0.01.

2) считываются значения из регистров текущих значений параметров. Реальное значение с канала получается путём умножения этих значений на коэффициент.

Естественно, что эти действия без проблем можно выполнить в скада (что и делалось на протяжении 10-ти лет). Но написал драйвер (ОРС-сервер), в котором одна из групп как раз отвечает за текущие значения с каналов. Теперь для получения реального значения с канала из ОРС-клиента достаточно считать значение из сооветствующего тега (например, ArgusM1.ChannelValues.Channel1 - значение с первого канала). И всё. При этом программист скада может и не знать, что данные в орс-сервер идут по модбас протоколу.

Сейчас работаю со шнайдёровскими контроллерми. Ситуация абсолютно такая же. Контролеры поддерживают модбас. Но для каждого контроллера назначение регистров несколько различаются (Sepam 20, 40 и 80). Я считываю драйвером модбасовским большой пакет данных. А потом в зависимости от типа контроллера разбираю этот блок данных (по-сути, разбор реализован в виде отдельных драйверов для каждого типа контроллера).

Таким образом, нередко работа с контроллерами, поддерживающих широко распространённые протоколы обмена сводится к

1) получению данных по этому самому протоколу

2) разбор данных, пересчёт.

Пункт воторой можно реализовать и в скада (что вы и пытаетсь сделать).

Или совместить получение данных и их некоторую их обработку в одной программе (драйвере). Что многи е производители и делают.

Атол-М, г.Пермь
Наверх
KostyaK Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 02 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 110
Свойства публикации Свойства публикации   Ответить, цитируя автора - KostyaK Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Ноябрь 2007 11:10
Первоначально опубликовано Vald


 Могут ли скады читать 3 командой массив регистров и таки образом получать величину измерения  и состояние измерения всех каналов за один запрос и можно ли при этом обойтись без OPC сервера?




Очевидно, если пытаться прочитать все параметры одной командой, то получиться достаточно большой пакет. В этом случае могут быть проблемы, вызванный одной из причин:

1) контроллер не может отправлять достаточно большой длины
2) компьютер (плата расширения) не может принимать/отправлять пакеты большой длины.

По первому пункту: сейчас работаю со шнайдером, и вот что оказалось для Sepam80: "В данной зоне сгруппированы данные измерений и диагностики Sepam, закодированные в 32 битах. Размер зоны превышает емкость одного кадра, поэтому требуется, по меньшей мере, два запроса для считывания всего содержимого зоны."
Те все измеренные аналоговые параметры лежат в некторой области памяти. Но их [параметров] так много, что аппаратно-програмная реализация модбаса на контроллере не позволяет отослать их за одну команду.
Поэтому посмотрите, нет ли подобных ограничений у вашего оборудования.

По второму пункту: на некоторых старых моделях ноутбуков с ком-портом удавалось отправлять (и получать) только порядка значения 40-50 регистров (те величина пакета была 100-110 байт). Хотя на ПК всё работало нормально (запрашивались значения 120 регистров контроллера). Посмотрите, не окажется ли подобных орграничений у используемых плат расширения. Это можно выяснить, пожалуй, только опытным путём.
Атол-М, г.Пермь
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Ноябрь 2007 12:58

Ограничение на размер пакете понятное. Конечно, если объем передаваемой информации большой - придется лазить за ними пару раз.  Но вовсе не так, как например в Трейс Моуд предлагают - один раз залезли - получили измеренные значения , второй раз залезли - получили достоверность измерений, третий раз залезли - получили дискретные входы.  В скаде надо получить все сразу и быстро.

По ноутбукам приключений много.  Не все понятные.  То что я понял -драйвер работает пока порт открыт.  А вот дальше если что то скажем с тайм аутами не так - слишком малы то он может и закрыться в момент, когда посчитает что посылка кончилась.  Это я на тошибе видел, но думаю что и у других что то такое есть .

И вторая штука - было замечено что при длительной работе порта когда от ножек квитирования отжирается ток на питание скажем чего-то снаружи (несколько миллиампер) и в таком режиме комп находится несколько часов, то порт может отгореть.

При экспериментах ни один чайник не пострадал

-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz