Segnetics

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.05.2018, 11:52   #1
chaos1727
Senior Member
 
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили: 2 раз(а) в 1 сообщении
По умолчанию Modbus опрос

Добрый день. На объекте установлен контроллер 2Gi с уже вращающимся внутри алгоритмом. Недавно добавилось программируемое реле Zelio(SR3B261BD) с модулем modbus RTU (SR3MBU01BD).
Его с помощью 2Gi нужно будет опросить и отправить данные в скаду.

С помощью утилиты CAS Modbus Scanner я благополучно опрашиваю Zelio
Запрос: 0A 03 00 14 00 01 C5 75
Ответ: 0A 03 02 00 03 5D 84

Пытался считать напрямую с помощью Мастер ОРС все норм
Запрос: 0A 03 9C 55 00 01 BB 31
Ответ: 0A 03 02 00 03 5D 84

С помощью 2Gi никак не получается
Как правильно сконфигурировать переменную по адресу 40021 функция 03 в Лоджике.
Адрес Zelio 10, скорость 57600, четность нет, стоп бит 1.
Подскажите пожалуйста что я делаю не так?
Тестовый файл во вложении.
Вложения
Тип файла: psl 2Gi test modbus with zelio.psl (96.4 Кбайт, 22 просмотров)
chaos1727 вне форума   Ответить с цитированием
Старый 11.05.2018, 12:01   #2
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Modbus опрос

Цитата
Сообщение от chaos1727 Посмотреть сообщение
Добрый день. На объекте установлен контроллер 2Gi с уже вращающимся внутри алгоритмом. Недавно добавилось программируемое реле Zelio(SR3B261BD) с модулем modbus RTU (SR3MBU01BD).
Его с помощью 2Gi нужно будет опросить и отправить данные в скаду.

С помощью утилиты CAS Modbus Scanner я благополучно опрашиваю Zelio
Запрос: 0A 03 00 14 00 01 C5 75
Ответ: 0A 03 02 00 03 5D 84

Пытался считать напрямую с помощью Мастер ОРС все норм
Запрос: 0A 03 9C 55 00 01 BB 31
Ответ: 0A 03 02 00 03 5D 84

С помощью 2Gi никак не получается
Как правильно сконфигурировать переменную по адресу 40021 функция 03 в Лоджике.
Адрес Zelio 10, скорость 57600, четность нет, стоп бит 1.
Подскажите пожалуйста что я делаю не так?
Тестовый файл во вложении.
вам надо внимательно прочитать про адресацию в лоджике.
абсолютный 40021 по которому лезет 03функция и адрес 40021 в лоджике это совсем разные адреса

я бы попробовал читать адреса 21-22 разными способами - R(in) R(out)


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 11.05.2018, 12:41   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Modbus опрос

Цитата
Сообщение от chaos1727 Посмотреть сообщение
С помощью утилиты CAS Modbus Scanner я благополучно опрашиваю Zelio
Запрос: 0A 03 00 14 00 01 C5 75
Ответ: 0A 03 02 00 03 5D 84

С помощью 2Gi никак не получается
Как правильно сконфигурировать переменную по адресу 40021 функция 03 в Лоджике.
http://dl.segnetics.com/WebHelp/SMLo...h_invertor.htm

У вас переменная с адресом 0014h (20 десятичный). 40021 - это не адрес переменной. Подробности по ссылке.

Подробности по номерам функций в справке.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 11.05.2018, 14:05   #4
chaos1727
Senior Member
 
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили: 2 раз(а) в 1 сообщении
По умолчанию Ответ: Modbus опрос

Уважаемые LordN и Arsie, "поиграл" с Rin и Rout ничего не вышло (.
Еще раз покопался в хелпе лоджика никак не пойму реализации с обращением к определенным переменным(регистрам).

мое понимание организации регистров

1-9999 ReadCoil функция 0х01
10001-19999 DiscreteInput функция 0х02
30001-39999 Input Register функция 0х04
40001-49999 Holding Register функция 0х03

В утилите CAS Modbus Scanner я напрямую задавал область памяти ( Arsie считает что слово адрес здесь не применимо) 40021 и считывал данные.

В ОРС не задается область памяти 40021, там я выставлял ее выбирая HOLDING REGISTER, а дальше задавал смещение(offset) в моем случае 20. Итого 40001+20=40021 и данные получал.

В хелпе лоджика написано, что функцию 0х03 выполняет R(out) и R/Wout
задал им смещение 20,21,22, но результат нулевой. Как всегда смотрю в книгу фижу фигу. Не понимаю как лоджик запрашивает регистры в режиме мастера. В режиме слэйва вообще все просто особенно если выставляешь старый тип адресации.
chaos1727 вне форума   Ответить с цитированием
Старый 11.05.2018, 15:10   #5
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Modbus опрос

Цитата
Сообщение от chaos1727 Посмотреть сообщение
Уважаемые LordN и Arsie, "поиграл" с Rin и Rout ничего не вышло (.
Вы описание под ссылкой точно открывали? Похоже, что нет.

Ваша цель: адрес 20 десятичный, тип "Integer", для функции 03 направление, согласно справке, "R(out)".

Проверьте дважды, десятичный вы адрес задаёте или шеснадцатеричный.


PS. А по поводу "как я это понимаю", чётко написано в документе стандарта Modbus: "Holding register 40001 is addressed as register 0000 in the data address field of the message. The function code field already specifies a ‘holding register’ operation. Therefore the ‘4XXXX’ reference is implicit"


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 11.05.2018, 19:20   #6
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Modbus опрос

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


__________________
C уважением, LordN
LordN сейчас на форуме   Ответить с цитированием
Старый 18.05.2018, 12:07   #7
chaos1727
Senior Member
 
Регистрация: Jan 2015
Сообщения: 116
Благодарил(а): 2 раз(а)
Поблагодарили: 2 раз(а) в 1 сообщении
По умолчанию Ответ: Modbus опрос

Arsie, LordN спасибо, все заработало, хотя полного понимания так и не вышло, какие то туманные пятна все равно остались )))
chaos1727 вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опрос из Pixel контроллера Carel c.pCO по Modbus TCP kps Связь с внешним миром 12 09.07.2022 19:33
Опрос Modbus Slave (double -8 byte) Roman_M Связь с внешним миром 4 11.09.2019 09:32
Опрос контроллера SMH2010 по ModBus Bapyan Вопросы о SMH2010 7 10.04.2018 10:57
Honeywell MVC80-DH10M LordN Связь с внешним миром 30 28.11.2016 14:21
Конвертер карты памяти в файл конфигурации Modbus Universal MasterOPC Server 32 Arsie Библиотека макросов 0 25.04.2016 13:38


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


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