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

Проблема с считыванием данных по Modbus

 Ответить Ответить Страница  12>
Автор
Сообщение
Ludmila Смотреть выпадающим
Новичок
Новичок


Присоединился: 12 Февраль 2013
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - Ludmila Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Проблема с считыванием данных по Modbus
    Опубликовано: 12 Февраль 2013 16:51
Здравствуйте.

Поставлена задача считать данные из счетчиков электроэнергии производства фирмы "Эльстер-Метроника" Альфа1805 контроллером AllenBreadley RSLogix5000 по протоколу Modbas RTU.
Связь контроллера со счетчиком установлена. Но из заявленных в карте регистров счетчика 59 регистров считываются только 40. При попытке считать регистры, начиная с 41, модуль связи с модбас(MVI56E-MCMR фирмы Prosoft) выдает ошибку "Protokol Error" и  счетчик снова посылает 40 регистров, начиная с первого. Кажется, что информация начиная с 41 слова или лежит в запретной зоне, или защищена паролем, или должна быть считана с помощью другого протокола(например, Modbus ANSI), но тех.поддержка производителей счетчиков утверждает, что ничего такого не может быть. Счетчик с завода, настройка счетчиков не производилась и свои пароли никто не устанавливал.

Помогите!!! После 41 слова лежит самая нужная информация по учету отданной и полученной энергии. 
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Февраль 2013 05:34
"При попытке считать регистры, начиная с 41, модуль связи с модбас(MVI56E-MCMR фирмы Prosoft) выдает ошибку "Protokol Error" и  счетчик снова посылает 40 регистров, начиная с первого. "
По сколько регистров вы запрашиваете за один раз? Возможно, ваш модуль связи с модбас сначала запрашивает 40 регистров, начиная с первого. Следующий запрос - тоже 40 регистров, начиная с 41-го, но данные идут только до 59-го регистра (то есть, максимум можно запросить 19 регистров). В результате, счетчик возвращает исключение Modbus, и опрос продолжается, начиная с 1-го регистра.
Лучше всего в такой ситуации запустить какой-нибудь сниффер последовательного интерфейса и посмотреть, какие посылки гуляют в линии.

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Ludmila Смотреть выпадающим
Новичок
Новичок


Присоединился: 12 Февраль 2013
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - Ludmila Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Февраль 2013 09:57
Сейчас модуль настроен чтобы считывать с 0 слова только 40 слов. Пробовала настроить вторую посылку так чтобы считывать с 41 слова 18 или 19 слов. Когда модуль настроен на 2 посылки,  на вторую посылку счетчик выдает первые 40 слов. Если настроить модуль так, чтобы была одна посылка с 41 по 59 слово. Никаких данных нет вообще. 
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Февраль 2013 12:32
"Когда модуль настроен на 2 посылки,  на вторую посылку счетчик выдает первые 40 слов. "
Как это понимать? Какая-то такая последовательность:
Запрос 1: 40 регистров, начиная с 1го. Результат: счетчик возвращает первые 40 регистров.
Запрос 2: 19 регистров, начиная с 41го. Результат: те же самые первые 40 регистров.


"Если настроить модуль так, чтобы была одна посылка с 41 по 59 слово. Никаких данных нет вообще. "
А "Protocol error" есть? А если запросить один регистр, начиная с 41го, данные есть? Пробовали опрашивать счетчик с любого другого мастера протокола ModbusRTU (какая-нибудь СКАДА, HMI-панель, OPC-сервер)?


Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Ludmila Смотреть выпадающим
Новичок
Новичок


Присоединился: 12 Февраль 2013
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - Ludmila Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Февраль 2013 13:48
"Как это понимать? Какая-то такая последовательность:
Запрос 1: 40 регистров, начиная с 1го. Результат: счетчик возвращает первые 40 регистров.
Запрос 2: 19 регистров, начиная с 41го. Результат: те же самые первые 40 регистров."

Да, именно такая последовательность.

"А "Protocol error" есть? А если запросить один регистр, начиная с 41го, данные есть? Пробовали опрашивать счетчик с любого другого мастера протокола ModbusRTU (какая-нибудь СКАДА, HMI-панель, OPC-сервер)?"

да именно так. если запросить 1 регистр с 41го, тоже самое, данных нет. Объект спроектирован так, что считать можно только контроллером. HMI-панель нет в наличии, на СКАДУ данные передаются через контроллер, OPC-сервером не пробовала.
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Февраль 2013 05:21
Что-то не сходится. В одном случае при запросе 19 регистров начиная с 41го вы получаете не те регистры, в добавок и в количестве, отличном от запрошенного. В другом случае, при запросе единственного 41го регистра вы получаете Protocol error. Боюсь, без фиксации происходящего в последовательном интерфейсе разобраться не получится.
Возьмите любую программу, способную отображать передаваемую в последовательном интерфейсе информацию в шестнадцатеричном виде, либо программу-сниффер Modbus RTU и приведите здесь пары "запрос" - "ответ" для случаев:
1. когда вы делаете 2 разных запроса ( 40 регистров, начиная с 1го, и 19 регистров, начиная с 41го);
2. когда делаете одиночный запрос 41го регистра.
Без этой информации можно только гадать на кофейной гуще.
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Февраль 2013 15:40

Неясна суть проблемы ..  В инструкции к прибору много говорится о защите доступа, мол просто так данные не считаешь - только спец. программой и т.д.  А как вы пытаетесь прочесть данные ?  Еще промелькнула фраза - ".. Объект спроектирован так, что считать можно только контроллером .."  - каким таким контроллером ?

С уважением, SAN

Наверх
Ludmila Смотреть выпадающим
Новичок
Новичок


Присоединился: 12 Февраль 2013
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - Ludmila Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 14 Февраль 2013 16:12
для MuadDib: я не делала запроса 1 регистра с 41 регистра, только 19 реистров, в сообщении опечатка:)

для sanwork: счетчики А1805 имеют на борту порт для связи c ними по modbus. да, в этих приборах доступ к данным можно запорлить, но как я писала в своем первом сообщении, счетчики с завода и пароли там никакие сейчас не установлены.  В моем первом сообщении написано, что данные я пытаюсь считать контроллером AllenBreadley RSLogix5000(если конктрено 1756-L72) с модулями MVI56E-MCMR фирмы Prosoft.
Наверх
Vald Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 02 Октябрь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 427
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vald Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Февраль 2013 13:04
Надо конечно смотреть отдельно внешним компьютором.  Что там уходит и что там приходит.  Словам техподдержки верить нельзя.  Считаем что они ничего не сказали.  Надеяться на отсутствие пароля - нельзя.  Никто не знает что стоит там на самом деле.  Поведение прибора при установленном пароле тоже мало кто знает, даже разработчик может не сказать не посмотрев.
 
Если не хотите терять время без результата, надо подключиться к прибору внешним компьютором.  Комп-> преобразователь интерефейса RS 485 или  USB в 485 и смотреть терминалом модбасовским или своей программкой что ушло и что пришло.
Выше уже указали, что количество регистров, которые можно спросить за раз, может быть ограничено. Система команд прибора может быть с особенностями и ошибками(могут годами так выпускать или может появиться после очередной ревизии ПО). На слово никому не верьте. Техподдержка может давать советы не соответствующие действительности. Если есть такая конструктивная особенность , как защита данных, то поведение прибора при этом надо исследовать.  Мешать в кучу RTU  и  ASCII нормальный разработчик не будет, хотя есть прециденты у известных фирм, когда они такие чуды-юды танут годами в производстве.
Как только вы увидете лог того, что уходит и что приходит - все встанет на свои места.  Может быть даже попробовать перехватывать то что происходит на линии.  В линию преобразователь интерфейса и слушаем, что в линии другим компьютором.
При экспериментах ни один чайник не пострадал

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

Присоединился: 11 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 392
Свойства публикации Свойства публикации   Ответить, цитируя автора - AlexM Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 15 Февраль 2013 14:36
Первоначально опубликовано Ludmila

 Объект спроектирован так, что считать можно только контроллером. HMI-панель нет в наличии, на СКАДУ данные передаются через контроллер, OPC-сервером не пробовала. 

На любой объект, если только на нем двери не замурованы и на шкафу со счетчиком не висит амбарный замок, можно приехать с ноутом, на котором стоит ОРС сервер Модбас и интерфейсом 485 и почитать со счетчика на прямую, если со счетчика все идет как надо, то проблема в контроллере (проге), если нет, то ковырять счетчик, может сервисной утилитой, какие то параметры поднастроить, ну и т.д.
Наверх
 Ответить Ответить Страница  12>

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

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