Segnetics

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

Примеры работы по Modbus Примеры работы с частотниками, панелями и любыми другими устройствами, использующими Modbus-RTU/ASCII/TCP

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2018, 13:11   #1
mihanic
Member
 
Регистрация: Apr 2018
Сообщения: 50
Благодарил(а): 7 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Как прочитать float64 из СПТ962

Не могу связаться с СПТ 962 по Modbus.
SMH2G при чтении параметра по Modbus типа Real запрашивает 2 регистра, а СПТ требует чтобы в запросе было 4 регистра.
То есть для СПТ962 команда чтения температуры по трубопроводу 1 выглядит так: 01 03 049C 0004 8517
а SMH2G посылает команду 01 03 049C 0002 0515.
Можно ли как-то изменить количество запрашиваемых регистров в запросе?
mihanic вне форума  
Старый 19.04.2018, 00:57   #2
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

http://forum.segnetics.com/attachmen...8&d=1426586101
ATS сейчас на форуме  
Старый 20.04.2018, 05:36   #3
mihanic
Member
 
Регистрация: Apr 2018
Сообщения: 50
Благодарил(а): 7 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

[QUOTE=LordN;41111]
Итог: ответ я получил в виде четырех слов
word1 = 0000h
word2 = 0000h
word3 = 0080h
word4 = 5140h
Знаю, что это должно означать число 70 в десятичном виде.
Но правильно собрать из них два long, чтобы отправить в макрос, который любезно предоставил ATS (отдельное спасибо за него) не получается. На выходе макроса получается ерунда.
Пробовал разный порядок слов: 1 2 3 4, 2 1 4 3, 3 4 1 2, 4 3 2 1 всё равно 70 на выходе не получилось.
Миниатюры
Нажмите на картинку для увеличения

Название:  2018-04-20_10-33-29.png
Просмотров: 328
Размер:  63.4 Кбайт  

Последний раз редактировалось Arsie, 20.04.2018 в 11:46
mihanic вне форума  
Старый 20.04.2018, 09:04   #4
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от mihanic Посмотреть сообщение
Спасибо, я почему-то так не догадался сделать.

Итог: ответ я получил в виде четырех слов
word1 = 0000h
word2 = 0000h
word3 = 0080h
word4 = 5140h
Знаю, что это должно означать число 70 в десятичном виде.
Вроде по картам два лонга получить должны.
Числа правильные - байты переставьте.
http://www.binaryconvert.com/result_...decimal=055048
ATS сейчас на форуме  
Старый 20.04.2018, 11:33   #5
mihanic
Member
 
Регистрация: Apr 2018
Сообщения: 50
Благодарил(а): 7 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Всем спасибо, всё получилось.
Во вложении пример для считывания с СПТ962 по Modbus параметров: давления, температуры и массового расхода по трубопроводам 1 и 2.
Вложения
Тип файла: psl spt962_modbus.psl (1.41 Мбайт, 393 просмотров)
mihanic вне форума  
Старый 21.04.2018, 18:24   #6
coverart
Senior Member
 
Регистрация: Mar 2008
Адрес: Екатеринбург
Сообщения: 492
Благодарил(а): 50 раз(а)
Поблагодарили: 14 раз(а) в 13 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Красаучег!!!
coverart вне форума  
Старый 04.06.2018, 18:25   #7
Radistus
Member
 
Регистрация: Dec 2015
Адрес: Спб
Сообщения: 34
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Простите. Не как не могу понять: а как можно по ModBus прочитать параметр с СП-Сети??? Или эти протоколы настолько схожи, что можно вот прям так? Тогда можно более детально: что куда втыкать и как настроить СПТ на работу с модбас?
Radistus вне форума  
Старый 04.06.2018, 19:33   #8
djaval
Senior Member
 
Регистрация: Nov 2013
Адрес: Санкт-Петербург
Сообщения: 213
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

В 962м заявлен modbus rtu.
Теперь знаем, что он жизнеспособный
djaval вне форума  
Старый 05.06.2018, 04:49   #9
mihanic
Member
 
Регистрация: Apr 2018
Сообщения: 50
Благодарил(а): 7 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от Radistus Посмотреть сообщение
Простите. Не как не могу понять: а как можно по ModBus прочитать параметр с СП-Сети??? Или эти протоколы настолько схожи, что можно вот прям так? Тогда можно более детально: что куда втыкать и как настроить СПТ на работу с модбас?
Я не пробовал работать с СП-сеть.
У меня первый порт (RS-232, клемма Х2) служит для настройки СПТ и скачивания архивов программой Пролог, а второй порт (RS-485, клемма Х3) для связи с контроллером или скадой по протоколу Modbus RTU.
Чтобы настроить СПТ962 на протокол Modbus необходимо задать параметр 003 = 5050001045
Здесь слева направо:
Код:
Поз. Значение
 1    5 – протокол Modbus RTU c 8 – битовым форматом байтов без контроля четности и 2-мя стоповыми битами
 2    0 – по RS232C подключен компьютер (контроллер)
 3    5 – установлена скорость 9600 бод на RS232C
 4    0 – не используется управление потоком данных
 5    0 – нет сетевого принтера
6-7  01 – адрес СПТ на шине RS485 (просто 1)
8-9  04 – старший адрес на шине RS485 (просто 4)
10    5 – установлена скорость 9600 бод на RS485
P.S. по заявлению производителя в СПТ962 все порты связи работают независимо друг от друга. Но выяснилось, что при одновременном опросе по RS-232 и RS-485 возникали ошибки (версия ПО СПТ962 была 01.01.06). Поэтому производитель выпустил новую версию ПО: 01.01.07, но мы ещё не успели её протестировать - только получили прибор.
mihanic вне форума  
Старый 06.06.2018, 13:23   #10
Radistus
Member
 
Регистрация: Dec 2015
Адрес: Спб
Сообщения: 34
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Спасибо, за подробный ответ!!! у меня версия СПТ не та оказалась, 961.2 (((
Radistus вне форума  
Старый 07.06.2018, 04:16   #11
mihanic
Member
 
Регистрация: Apr 2018
Сообщения: 50
Благодарил(а): 7 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от Radistus Посмотреть сообщение
Спасибо, за подробный ответ!!! у меня версия СПТ не та оказалась, 961.2 (((
Так они очень похожи по функционалу и, по-моему, там тоже два порта для связи.
mihanic вне форума  
Старый 07.06.2018, 09:11   #12
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от mihanic Посмотреть сообщение
Так они очень похожи по функционалу и, по-моему, там тоже два порта для связи.
Только вот модбаса в чистом виде там нет.
ATS сейчас на форуме  
Старый 29.08.2019, 14:49   #13
GTS
Senior Member
 
Регистрация: Jun 2017
Сообщения: 152
Благодарил(а): 3 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от mihanic Посмотреть сообщение
Я не пробовал работать с СП-сеть.
У меня первый порт (RS-232, клемма Х2) служит для настройки СПТ и скачивания архивов программой Пролог, а второй порт (RS-485, клемма Х3) для связи с контроллером или скадой по протоколу Modbus RTU.
Чтобы настроить СПТ962 на протокол Modbus необходимо задать параметр 003 = 5050001045
Здесь слева направо:
Код:
Поз. Значение
 1    5 – протокол Modbus RTU c 8 – битовым форматом байтов без контроля четности и 2-мя стоповыми битами
 2    0 – по RS232C подключен компьютер (контроллер)
 3    5 – установлена скорость 9600 бод на RS232C
 4    0 – не используется управление потоком данных
 5    0 – нет сетевого принтера
6-7  01 – адрес СПТ на шине RS485 (просто 1)
8-9  04 – старший адрес на шине RS485 (просто 4)
10    5 – установлена скорость 9600 бод на RS485
P.S. по заявлению производителя в СПТ962 все порты связи работают независимо друг от друга. Но выяснилось, что при одновременном опросе по RS-232 и RS-485 возникали ошибки (версия ПО СПТ962 была 01.01.06). Поэтому производитель выпустил новую версию ПО: 01.01.07, но мы ещё не успели её протестировать - только получили прибор.
Добрый день! Не получилось подключиться к тепловычислителю с вашими настройками. В настройках указана скорость 9600 в проекте 19200, и нет ли ошибки в карте регистров?
GTS вне форума  
Старый 29.08.2019, 15:09   #14
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 302
Благодарил(а): 0 раз(а)
Поблагодарили: 254 раз(а) в 250 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от GTS Посмотреть сообщение
Добрый день! Не получилось подключиться к тепловычислителю с вашими настройками. В настройках указана скорость 9600 в проекте 19200, и нет ли ошибки в карте регистров?
Можно перенастроить на 19200
Миниатюры
Нажмите на картинку для увеличения

Название:  Скриншот 29-08-2019 140709.png
Просмотров: 141
Размер:  144.2 Кбайт  
Ilya J. сейчас на форуме  
Старый 29.08.2019, 15:44   #15
GTS
Senior Member
 
Регистрация: Jun 2017
Сообщения: 152
Благодарил(а): 3 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Можно перенастроить на 19200
Дело не в этом, нет связи с прибором, поэтому и спрашиваю нет ли ошибки в примере. А так настроил на 9600.
GTS вне форума  
Старый 29.08.2019, 15:58   #16
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от GTS Посмотреть сообщение
В настройках указана скорость 9600 в проекте 19200, и нет ли ошибки в карте регистров?
Ну скорости точно должны совпадать. Или в Логике 003 = 5050001046 или в проекте для слейва 9600.

Цитата:
и нет ли ошибки в карте регистров?
Адрес (десятичный) = номер канала(трубопровода, потребителя)* 1024 + номер параметра

Для температуры первой трубы 1*1024+156=1180 или 49ch

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Можно перенастроить на 19200
Неправильно, на 232-м модбас работать не должен.
ATS сейчас на форуме  
Старый 29.08.2019, 16:16   #17
GTS
Senior Member
 
Регистрация: Jun 2017
Сообщения: 152
Благодарил(а): 3 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от ATS Посмотреть сообщение
Ну скорости точно должны совпадать. Или в Логике 003 = 5050001046 или в проекте для слейва 9600.


Адрес (десятичный) = номер канала(трубопровода, потребителя)* 1024 + номер параметра

Для температуры первой трубы 1*1024+156=1180 или 49ch

Неправильно, на 232-м модбас работать не должен.
Пока могу подключить на столе только датчик давления - 154 параметр. В примере 1178 и 1080 регистры. Провода подкинул к Х3 настройки совпадают с примером и нет ответа.
GTS вне форума  
Старый 29.08.2019, 16:32   #18
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от GTS Посмотреть сообщение
Пока могу подключить на столе только датчик давления - 154 параметр. В примере 1178 и 1080 регистры. Провода подкинул к Х3 настройки совпадают с примером и нет ответа.
А в Логике конфигурация для первой трубы прописана ? И канал измерительный для датчика давления? Иначе в приборе нет этих параметров!

Кстати в этом случае по идее отлуп получить должен.

Последний раз редактировалось ATS, 29.08.2019 в 16:48
ATS сейчас на форуме  
Старый 29.08.2019, 16:56   #19
GTS
Senior Member
 
Регистрация: Jun 2017
Сообщения: 152
Благодарил(а): 3 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от ATS Посмотреть сообщение
А в Логике конфигурация для первой трубы прописана ? И канал измерительный для датчика давления? Иначе в приборе нет этих параметров!

Кстати в этом случае по идее отлуп получить должен.
Канал датчика прописан. по трубе ничего не прописывал, может в этом проблема?
GTS вне форума  
Старый 29.08.2019, 17:15   #20
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 747
Благодарил(а): 12 раз(а)
Поблагодарили: 192 раз(а) в 188 сообщениях
По умолчанию Ответ: Как прочитать float64 из СПТ962

Цитата:
Сообщение от GTS Посмотреть сообщение
Канал датчика прописан. по трубе ничего не прописывал, может в этом проблема?
Труба то хоть прописана в 31-м параметре? Иначе её параметров вообще нет.
ATS сейчас на форуме  
 

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SM CONNECT (Подробная инструкция в картинках как настроить) alekseyeve SMConnect & SMConfig 230 27.03.2024 10:57
Как построить отказоустойчивую сеть SMconnect? Bayk SMConnect & SMConfig 19 16.05.2020 14:31
Как оценить время выполнения программы в контроллере? Arsie ЧаВо - Часто задаваемые Вопросы 0 04.10.2013 16:51
Использование USB-хаба Varnak Вопросы о SMH-2G(i) 8 01.03.2013 12:20
Элемер EL-4019: как правильно прочитать данные dima Связь с внешним миром 3 06.03.2012 16:40


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


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