Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром > Проблемы с панелями Weintek

Проблемы с панелями Weintek Всё о багах панелей Weintek

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2012, 15:05   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 017
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Разбор проблемы чтения input status панелью (решено)

Картинка номер один: "новая" карта памяти, неудачное чтение

Картинка номер два: "старая" карта памяти, удачное чтение

Теперь словами. Панель по какой-то причине не может или не умеет считывать нужное количество переменных. Она пытается прочитать то количество переменных, которое целиком помещается в одно слово. А одно слово - это 16 битовых переменных.

В итоге, вместо запроса на чтение трёх переменных она отправляет запрос на чтение 16 переменных. Т.к. в режиме "новой" карты объём памяти оптимизирован, то оставшиеся 13 переменных взять не от куда и поэтому контроллер отвечает флагом "общая ошибка".

В режиме же "старой" карты, в памяти контроллера безусловно выделяется буфер на 1024 переменные. В результате при запросе 16 переменных контроллер отдаёт требуемое количество вне зависимости, использована ли эта память в программе или нет.

Решение проблемы: нужно объявить в программе 16 переменных, пусть и не все из них будут использоваться. Рисунок три.
Миниатюры
Нажмите на картинку для увеличения

Название:  1.png
Просмотров: 355
Размер:  36.2 Кбайт   Нажмите на картинку для увеличения

Название:  2.png
Просмотров: 309
Размер:  36.4 Кбайт   Нажмите на картинку для увеличения

Название:  3.PNG
Просмотров: 335
Размер:  25.0 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 25.09.2012, 16:40   #2
Den
Сотрудник Segnetics
 
Регистрация: Sep 2011
Сообщения: 129
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Разбор проблемы чтения input status панелью

Добавлю.
При создании модбас сервера для 2Gi мы руководствовались документом http://www.modbus.org/docs/Modbus_Ap...ocol_V1_1b.pdf в котором на странице, например, 13/51 имеется диаграмма (Figure 11) для проверки валидности запроса (см. в аттаче). Там есть такая проверка: Starting Address + Quantity of outputs == OK, т.е. мы считали, что если у контроллера запрашивают больше данных чем у него есть, то возвращаем ExceptionCode2. В примере Fasterа панель запрашивает 16 битовых переменных и поскольку столько данных у нас нет, то 2Gi возвращает ошибку 0x81 0x02.
Миниатюры
Нажмите на картинку для увеличения

Название:  Fig11.GIF
Просмотров: 165
Размер:  19.3 Кбайт  

Последний раз редактировалось Arsie, 12.09.2017 в 12:46
Den вне форума   Ответить с цитированием
Старый 27.11.2017, 12:59   #3
weintek.net
Новичок
 
Регистрация: Apr 2012
Адрес: Санкт-Петербург
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Разбор проблемы чтения input status панелью

Добрый день.
Подтверждаю. При выборе битовых типов 0x/1x панель запрашивает по 16 битовых регистров в одном запросе. Если слейв не может предоставить все 16 битов, он возвращает ошибку.
Лучшим решением здесь, на мой взгляд, является дополнение карты адресов контроллера, как предлагает Arsie. Таким образом уменьшается трафик за счет уменьшения количества запросов.

Но, есть еще одно решение:
Используйте тип регистра 0x_single_Bit/1x_single_Bit. В этом случае запрашивается только один конкретный бит.
weintek.net вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SMH-2010 проблемы подключения (решено) spec_yug Вопросы о SMH2010 5 25.03.2016 09:27


Часовой пояс GMT +4, время: 14:50.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023