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 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Чтение переменных по 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
Просмотров: 220
Размер:  250.0 Кбайт  
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 код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу загрузить программу (решено) Александр Вопросы о SMH-2G 14 08.11.2018 13:37
Проблема с выводом на экран Pixel 2511+SMArt (решено) NewUser Вопросы о Pixel 4 16.11.2017 14:31
Pixel и tg-k300 (решено) Prosto Ivan Вопросы о Pixel 5 08.10.2015 10:29
Не могу разобраться в работе Pixel (решено) romil Вопросы о Pixel 10 24.09.2015 12:58
Одинаковы ли нижние платы Pixel 25xx и 12xx? (решено) Max2114 Вопросы о Pixel 1 03.12.2014 11:25


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


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