Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2014, 09:13   #1
Vorgehen
Member
 
Регистрация: Apr 2013
Адрес: Санкт-Петербург
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Не могу компьютером прочесть переменные с Pixel (решено)

Здравствуйте уважаемые друзья. Есть небольшая проблемка с контроллером Pixel. Пытаюсь наладить чтение переменных из контроллера. Контроллер слэйв, а компьютер мастер. Написал программку(тестировалась неоднократно) которая читает по 03 функции модбас. И всё вроде бы отлично, но с контроллера приходят нулевые ответы.
Опишу подробнее суть
В контроллере создан регистр типа int с адресом 0001h, в него помещено целое число 1022.
Адрес контроллера в сети: 83
Настроена транспортная система: 115200 8N2
Соединение устанавливается корректно, использую переходник на FTDI или на silicon labs чипах результат одинаков
Посылаю запрос на контроллер такой: 53 03 00 01 00 01 d8 78
Получаю ответ:53 03 01 00 00 f1 88
Всё логично и правильно, ответы корректны, но вот куда делось число 1022?
Посылаю запрос на контроллер такой: 53 03 00 01 00 02 98 79
Получаю ответ:53 03 02 00 00 00 00 01 f6
Опять нет числа. Проверил все регистры до 10, ничего, пусто. Пробовал ставить галочку фиксация, снимать её, а числа - нет. Что я делаю не так?
Контроллер Pixel 12хх. Думал ещё что отсчёт идёт с нуля, пробовал и регистр с адрессом 00h спросить, все мои попытки тщетны.
Vorgehen вне форума   Ответить с цитированием
Старый 09.04.2014, 10:22   #2
Nick
Сотрудник Segnetics
 
Аватара для Nick
 
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

проект с пикселя покажите.

опять же с функцией не напутали? 03 read holding reg - то есть функция для чтения переменных которые вы сами же по модбус и должны записать. если вы не запишете туда ничего функциями 06 или 16 будете читать нули.

Последний раз редактировалось Nick, 09.04.2014 в 10:32 Причина: й
Nick вне форума   Ответить с цитированием
Старый 09.04.2014, 10:52   #3
Sergey Cherevko
Senior Member
 
Аватара для Sergey Cherevko
 
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Чтение переменных по ModBus

Цитата:
Сообщение от Vorgehen Посмотреть сообщение
Посылаю запрос на контроллер такой: 53 03 00 01 00 01 d8 78
Получаю ответ:53 03 01 00 00 f1 88
Всё логично и правильно, ответы корректны, но вот куда делось число 1022?
Сдается мне, что Вы функцией чтения holding register пытаетесь прочитать input register. Попробуйте сделать запрос 53 04 00 01 00 01 CRC16


__________________
Автомат АК - самый распространенный преобразователь стека в очередь
Sergey Cherevko вне форума   Ответить с цитированием
Старый 09.04.2014, 11:09   #4
Nick
Сотрудник Segnetics
 
Аватара для Nick
 
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

Цитата:
Сообщение от Sergey Cherevko Посмотреть сообщение
Сдается мне, что Вы функцией чтения holding register пытаетесь прочитать input register. Попробуйте сделать запрос 53 04 00 01 00 01 CRC16
я и говорю - посмотреть бы на проект пикселя. чтоб не гадать.
Nick вне форума   Ответить с цитированием
Старый 09.04.2014, 11:19   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

Цитата:
Сообщение от Vorgehen Посмотреть сообщение
Посылаю запрос на контроллер такой: 53 03 00 01 00 01 d8 78
Получаю ответ:53 03 01 00 00 f1 88
Инпут регистры читаются функцией 04h.

Вы же читаете холдинги.

Ответ контроллера полностью адекватен.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.04.2014, 12:08   #6
Vorgehen
Member
 
Регистрация: Apr 2013
Адрес: Санкт-Петербург
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

проект дома, вот набросал на бумаге, думаю для иллюстрации подойдёт
Изображения
Тип файла: jpg Пробный проджект.jpg (250.0 Кбайт, 220 просмотров)
Vorgehen вне форума   Ответить с цитированием
Старый 09.04.2014, 12:10   #7
Vorgehen
Member
 
Регистрация: Apr 2013
Адрес: Санкт-Петербург
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

Цитата:
Инпут регистры читаются функцией 04h
Цитата:
Сдается мне, что Вы функцией чтения holding register пытаетесь прочитать input register. Попробуйте сделать запрос 53 04 00 01 00 01 CRC16
А вот это не пробовал, сегодня поэксперементирую

Последний раз редактировалось Vorgehen, 09.04.2014 в 12:25
Vorgehen вне форума   Ответить с цитированием
Старый 09.04.2014, 12:46   #8
Nick
Сотрудник Segnetics
 
Аватара для Nick
 
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Чтение переменных по ModBus

Цитата:
Сообщение от Vorgehen Посмотреть сообщение
А вот это не пробовал, сегодня поэксперементирую
все правильно - вы читаете holding regiser - фунцией 03
на вашем рисунке изображен input register - читать фунцией 04
Nick вне форума   Ответить с цитированием
Старый 10.04.2014, 08:34   #9
Vorgehen
Member
 
Регистрация: Apr 2013
Адрес: Санкт-Петербург
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Smile Ответ: Чтение переменных по ModBus

Цитата:
все правильно - вы читаете holding regiser - фунцией 03
на вашем рисунке изображен input register - читать фунцией 0
Цитата:
Инпут регистры читаются функцией 04h.

Вы же читаете холдинги.
Спасибо коллеги. Как всегда перепутал тёплое с мягким))На 04 функции всё завелось и даже приготовил целевой проект на контроллере за вечер. Всегда люблю сталкиваться с сегнетиксом. Чёткая работа железа, отзывчивый коллектив на форуме. И ещё раз спасибо уважаемые друзья.
Vorgehen вне форума   Ответить с цитированием
Ответ

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

Расширенный поиск

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

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



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


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