PDA

Просмотр полной версии : Отображение значения ТРМ138 на панели WEINTEK MT6070iH через Modbus RTU(485)



PROFIKIP
25.09.2016, 08:30
Пытаюсь отобразить значение температуры 1-ого канала измерителя на панели.
В программе EasyBuilder8000 создал цифровой дисплей.2659026589
Соеденил по Modbus RTU через COM1 data+ data-.
Значение как то реагирует синхронно с изменениями показаний на ТРМ138,т.е. то 0.01 то 0.09 то вообще ****.
2659126592
Немогу понять как отобразить правильное значение.
Помогите понять как правильно устанавливать адресацию и формат значения.

capzap
25.09.2016, 10:06
переверните слова местами,если читаете флоат, используйте инт для чтения из прибора, в последних версиях билдера в настройках соединения с плк должны быть опции переворачивания слов. Надеюсь один из трех вариантов поможет

PROFIKIP
25.09.2016, 17:25
Адрес опрашиваю так: 3x: 16#0004
В протоколе Modbus не профи,пытаюсь самообучаться. Поэтому прошу если можно поконкретнее в примерах или в скриншотах подскажите пожалуйста как правильно опрашивать регистры модбаса в моем случае.
Как перевернуть слова?
Как использовать инт?
Где лучше скачать последнюю версию билдера на русском?

lara197a
25.09.2016, 21:34
Если у вас один прибор, то 3х 4 (это опрос регистра 4 в слейв2 адрес 1 по умолчанию)
Если приборов много,то 3х 16#0004 (опрос регистра 4 в слейве адрес 16 )
Нужно создать подключение, активировать порт и задать параметры.
Это иконка карандаш с ключом (системные настройки-устройства)

PROFIKIP
26.09.2016, 09:22
Если у вас один прибор, то 3х 4 (это опрос регистра 4 в слейв2 адрес 1 по умолчанию)
Если приборов много,то 3х 16#0004 (опрос регистра 4 в слейве адрес 16 )
Нужно создать подключение, активировать порт и задать параметры.
Это иконка карандаш с ключом (системные настройки-устройства)

Как опрашивать регистр я знаю. Я не понимаю как получить правильное значение из регистра.

capzap
26.09.2016, 11:06
Как опрашивать регистр я знаю. Я не понимаю как получить правильное значение из регистра.

в элементе как добавляете параметр Адрес 3х или 4х? Попробуйте задать поля с разными параметрами которые есть в списке и увидите где флоат правильно прочитался

capzap
26.09.2016, 11:13
Адрес опрашиваю так: 3x: 16#0004
так в таблице надо читать с третьего регистра а не четвертого

Как использовать инт?
читайте инт из первого регистра

PROFIKIP
26.09.2016, 11:34
Получилось вывести шестнадцетеричное значение на панель, т.е. если например показания ТРМ138= 24.8 то на weintek= F9.
Просто во вкладке "формат чисел" параметров числового дисплея установил максимальное кол-во разрядов.
2661226613
Теперь как то надо перевести в нормальное десятичное значение на числовом дисплее????
Странно только что-то. В инструкции на ТРМ138 адрес регистра значения int пишут 0001, а реально считываеться только из 0002.
Кому верить???

petera
26.09.2016, 12:07
Получилось вывести шестнадцетеричное значение на панель, т.е. если например показания ТРМ138= 24.8 то на weintek= F9.
Просто во вкладке "формат чисел" параметров числового дисплея установил максимальное кол-во разрядов.
2661226613
Теперь как то надо перевести в нормальное десятичное значение на числовом дисплее????
Странно только что-то. В инструкции на ТРМ138 адрес регистра значения int пишут 0001, а реально считываеться только из 0002.
Кому верить???

16бит HEX мало. Для флоат нужно 2 регистра. Нужно выбирать 32бит HEX, а затем сюда http://www.binaryconvert.com/convert_float.html
В конвертере будет видно, как переставить слова или байты в HEX, чтобы получить 24.8.
По поводу

Странно только что-то. В инструкции на ТРМ138 адрес регистра значения int пишут 0001, а реально считываеться только из 0002.
Кому верить???
Нужно учитывать, так называемое смещение.
Modbus был первоначально разработан для контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация. Например, первому регистру ввода (адрес 0000) соответствовал номер ячейки 30001, а первому регистру хранения (адрес 0000) — 40001. Эта разница в адресах для каждой области 1, 10001, 30001 и 40001 называется смещением.
Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40108 контроллера.
Для MODBUS RTU вы его должны сами учитывать
26617
А если выбрать MODBUS RTU (zero-based addressing), то смещение учитывать не надо
26618

PROFIKIP
26.09.2016, 12:37
Ура!!!Задача решена.Всем спасибо огромное!!!
26619
26620
26621

pasha-z
10.11.2016, 19:35
Кто-нибудь подключал ТРМ 138+СМИ-2.....??..........что-то никак не получается